2010-08-18 5 views

Répondre

2

Il n'y a aucune raison apparente pourquoi il changerait la valeur à 2288.2, mais si elle finit effectivement comme 22882.0 alors vous êtes simplement en utilisant une culture qui n'utilise pas comme période separtor décimale.

Il vous suffit de spécifier une culture qui n'utilise la période comme séparateur décimal:

Dim d As Double = Double.Parse(theString, CultureInfo.InvariantCulture) 
1
Dim input As String = "22.882" 
If Double.TryParse(input, Globalization.NumberStyles.Float, New Globalization.CultureInfo("en-US"), result) Then 
    Return result 
Else 
    Return 0D ' Or error 
End If 
+0

Merci! L'argument Globalization.NumberStyles.Float semble faire l'affaire. Un TryParse régulier a également entraîné une valeur incorrecte de 22882.0. – CodeMonkey