Dezimalzahl in Bruch umrechnen

    • VB.NET

    Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Samus Aran.

      Dezimalzahl in Bruch umrechnen

      Das ist eine Function, der euch eine Dezimalzahl in einen Bruch umrechnet:

      VB.NET-Quellcode

      1. Public Shared Function DezToBruch(ByVal dezimalzahl As String) As String
      2. Dim nachkommastellen As String = dezimalzahl.Substring(dezimalzahl.IndexOf(",") + 1)
      3. Dim chars() As Char = nachkommastellen.ToCharArray
      4. Dim count As Integer = chars.Length
      5. Dim nenner As String = "1"
      6. For i = 1 To count
      7. nenner = nenner & 0
      8. Next
      9. Dim zaehler As String = nachkommastellen.Replace("0", "")
      10. If dezimalzahl.StartsWith("0") Then
      11. Return zaehler & "/" & nenner
      12. Else
      13. Dim distanz As Integer = dezimalzahl.IndexOf(",")
      14. Return dezimalzahl.Substring(0, +distanz) & " " & zaehler & "/" & nenner
      15. End If
      16. End Function


      Ihr könnt ihn dann so verwenden:

      Beispiel:

      VB.NET-Quellcode

      1. MessageBox.Show(DezToBruch("11,345"))


      Ausgabe:

      11 345/100

      Viel Spaß damit! :thumbsup:

      MFG

      Alex-Digital :D
      Immerhin ist es ganz gut, dass Dein Programm besser "rechnen" kann als Du:

      Alex-Digital schrieb:

      Ausgabe:
      11 345/1000
      Nur:
      Wozu soll das gut sein, zumal Du nichts rechnest, sondern nur ein kleines bisschen Textverarbeitung programmiert hast :?:
      Insbesondere sind Input und Output Strings, und mit Strings kann man nun mal nicht rechnen.
      Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
      Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
      Ein guter .NET-Snippetkonverter (der ist verfügbar).
      Programmierfragen über PN / Konversation werden ignoriert!

      Quadsoft schrieb:

      kürzen
      Dazu müsste er tatsächlich rechnen, und das noch ganzzahlig, aber das kann @Alex-Digital: offensichtlich nicht so richtig.
      Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
      Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
      Ein guter .NET-Snippetkonverter (der ist verfügbar).
      Programmierfragen über PN / Konversation werden ignoriert!
      Nebenbei ist der Funktionsname Clusterfuck. "Bruch" heißt im Englischen "Fraction".
      Und du solltest diese Funktion als Extension-Method umschreiben.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Samus Aran“ ()