为什么当我将值为“22.882”的字符串转换为double时,使用Dbl()会失去精度并转换为2288.2?
我必须使用double,因为我正在使用System.Web.UI.WebControls.Unit的构造函数 (见http://msdn.microsoft.com/en-us/library/ctewx7ch.aspx)。
答案 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)