Double.tostring und dabei exponenzielle Darstellung vermeiden

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Murdock.

    Double.tostring und dabei exponenzielle Darstellung vermeiden

    Hallo,

    Ich versuche einen Double-Wert als string auszugeben:

    VB.NET-Quellcode

    1. Dim i As Double = 0.000006
    2. MessageBox.Show(i.ToString) 'ergibt 6E-6


    Ich würde aber gerne anstatt 6E-6 wirklich wieder 0.000006 als string herausbekommen.

    Folgende Methode funktioniert:

    VB.NET-Quellcode

    1. Dim i As Double = 0.000006
    2. MessageBox.Show(i.ToString("F6"))


    aber: wenn ich als Zahl dann eine 0 habe, macht er mir dort eine 0.000000 raus, was wiederum nicht gewollt ist.

    Freue mich auf Antworten :)
    Für ein Mindestmaß an Rechtschreibung, Interpunktion und Majuskeln!
    Moin,

    soll dann vmtl. für alle Zahlen sein, die "glatt" sind, also auch 1 etc. oder nur 0?

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Achso, für die glatten Zahlen hätte ich Modulo verwendet.
    Aber für Dein Vorhaben ist das ganz gut, da wird gleich alles so formatiert: stackoverflow.com/questions/4525854/remove-trailing-zeros

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Mach es einfach so ;)

    VB.NET-Quellcode

    1. MessageBox.Show(i.ToString("F10").TrimEnd("0"c))

    Edit: Oder so, dann kommt bei 0 kein "0,"

    VB.NET-Quellcode

    1. Function DTS(d As Double) As String
    2. If d = 0 Then Return "0"
    3. Return d.ToString("F10").TrimEnd("0"c)
    4. End Function

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Murdock“ ()

    Jup, hatte nicht soweit gedacht :rolleyes: . Hab mir das auch mal angeschaut was du meintest.

    VB.NET-Quellcode

    1. Return d.ToString("F10").TrimEnd("0"c).TrimEnd(System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator.ToCharArray)