Ich habe einen Float-Wert wie folgt aus: 0,60000002384185791 ich diesen Wert auf Zeichenfolge wie folgt umwandeln möchten: 0,60000002384185791 (genau gleich - keine wissenschaftliche Notationen oder Clipping-off Präzision)Wie wird der numerische Wert der Bruchzahl in die Zeichenfolge "so wie sie ist" umgewandelt?
Aber immer, wenn ich zu konvertieren versuchen, dieser Wert auf Zeichenfolge, es gibt mir ",600000023841858"
Code:
Dim ddd As Decimal = 0.60000002384185791 '//This value is coming from some method and it may be different like 0.6000000238418579123456789012 or 102020.6000000238418579123456789012
Dim myVal as string = " Your Value is : " & ddd.ToString() '//This truncates actual value to 0.600000023841858
Gibt es eine Möglichkeit, diesen Wert "so wie er ist" zu konvertieren (ohne wissenschaftliche Notationen und ohne Abschneiden der Genauigkeit)?
Es funktioniert gut bis zu einigen Grenzen in C#, aber ich brauche eine Lösung in Visual Basic. Gibt es etwas mit Sprache zu tun (ich hoffe nicht).
D auf die Zahl hinzufügen, so dass es eine Dezimalzahl ist? Könnte als Floating Point behandelt und beim Kompilieren abgeschnitten werden –
Wie @SamiKuhmonen sagt, besteht das Problem in Ihrem Beispiel darin, dass Ihre Konstante '0.60000002384185791' ein Double ist, das nicht viele Ziffern enthalten kann. Setzen Sie 'Option Strict On ', um automatische Konvertierungen zu verbieten und stellen Sie sicher, dass der Wert, den Sie von" irgendeiner Methode "erhalten, niemals in ein Double konvertiert wird. – Blackwood
@SamiKuhmonen, @Schwarzholz: Ich habe das auch getan, aber kein Glück. Tatsächlich hält mein 'Double' diesen Wert. Wenn ich den Mauszeiger darüber bewege, wird mir der korrekte Wert angezeigt, d. H. '0.60000002384185791' Wenn ich aber den Funktionsrückgabetyp auf' Decimal' ändere, wird nur '06D' zurückgegeben. –