VB.Net String для удвоения - PullRequest
       13

VB.Net String для удвоения

1 голос
/ 18 августа 2010

Почему при преобразовании строки со значением "22.882" в значение double, используя Dbl (), она теряет точность и преобразуется в 2288.2?

Я должен использовать значение double, поскольку я используюконструктор System.Web.UI.WebControls.Unit (см. http://msdn.microsoft.com/en-us/library/ctewx7ch.aspx).

Ответы [ 3 ]

2 голосов
/ 18 августа 2010

Нет очевидной причины, по которой это могло бы изменить значение на 2288.2, но если оно действительно заканчивается как 22882.0, то вы просто используете культуру, которая не использует точку в качестве десятичного разделителя.1004 * Вы просто должны указать культуру, которая использует период в качестве десятичного разделителя:

 Dim d As Double = Double.Parse(theString, CultureInfo.InvariantCulture)
1 голос
/ 18 августа 2010
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 голосов
/ 18 августа 2010

Попробуйте Double.TryParse(...).

...