Single nach String

21/08/2008 - 11:58 von Thomas Eckel | Report spam
Hallo zusammen,
ich habe ein kleines Format Problem:

label ist als single definiert und enthàlt den wert "0.100007489"
nach der Anweisung:
wert1 = label.ToString(Globalization.CultureInfo.CurrentCulture)
enthàlt wert1 nicht wie gedacht "0,100007489" sondern "0,1000075"

was mache ich falsch bzw. wie mache ich es richtig ?
Gruß
Thomas Eckel
 

Lesen sie die antworten

#1 Elmar Boye
21/08/2008 - 12:17 | Warnen spam
Hallo Thomas,

Thomas Eckel schrieb:
ich habe ein kleines Format Problem:

label ist als single definiert und enthàlt den wert "0.100007489"
nach der Anweisung:
wert1 = label.ToString(Globalization.CultureInfo.CurrentCulture)
enthàlt wert1 nicht wie gedacht "0,100007489" sondern "0,1000075"



Ein Single hat nur eine (angezeigte) Genauigkeit von 7 Stellen:
<URL:http://msdn.microsoft.com/de-de/lib...e.aspx>

was auch bei Formatierung angewendet wird:
<URL:http://msdn.microsoft.com/de-de/lib...k.aspx>

Um alle Stellen anzuzeigen, verwende etwas wie:
Dim wertAnzeige As String = String.Format(CultureInfo.CurrentCulture, "{0:G9}", wert)

bzw. ToString(CurrentCulture, "G9")

Allerdings ist das Arbeiten am Rande der Genauigkeit an sich problematisch.
Wenn Du mehr als 7 signifikante Stellen hast, solltest Du ein Double
verwenden, der eine Genauigkeit von 15 Stellen hat.

Gruß Elmar

Ähnliche fragen