VB.Net字符串加倍

时间:2010-08-18 11:18:20

标签: vb.net casting precision

为什么当我将值为“22.882”的字符串转换为double时,使用Dbl()会失去精度并转换为2288.2?

我必须使用double,因为我正在使用System.Web.UI.WebControls.Unit的构造函数 (见http://msdn.microsoft.com/en-us/library/ctewx7ch.aspx)。

3 个答案:

答案 0 :(得分:2)

没有明显的理由将值更改为2288.2,但如果它实际上最终为22882.0,那么您只是使用不使用句点作为小数部分的文化。

您只需指定一个使用句点作为小数分隔符的文化:

 Dim d As Double = Double.Parse(theString, CultureInfo.InvariantCulture)

答案 1 :(得分: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

答案 2 :(得分:0)