转换自" String"到"单身"输入不起作用

时间:2014-05-17 16:58:54

标签: vb.net

我将数据存储为字符串格式,使用逗号将十进制与整数分开。变量" dataPoint"实际上是一个DataTable对象的元素,用于从SQLite .db文件中检索数据:

dataPoint = MyDataTable.Rows(0)(0) ="0,1563"

当我尝试使用以下代码行进行转换时:

convertedDataPoint = Convert.ToSingle(Strings.Replace(dataPoint, ",", "."))

...我得到以下值:

>>> 1563.0

而不是

>>> 0.1563

这里有什么问题?我该如何正确转换这些数据?

1 个答案:

答案 0 :(得分:3)

Convert.ToSingle()使用当前线程的区域性信息来解析该号码。如果您想要一种不变的方法,您可以指定字符串所在的格式:

convertedDataPoint = Convert.ToSingle(dataPoint, CultureInfo.InvariantCulture)

或意大利人:

convertedDataPoint = Convert.ToSingle(dataPoint, new CultureInfo("it"))

但每次都不要实例化新的CultureInfo。创建一次并在任何需要的地方使用它。

无论如何,您的数据库应该以一致的方式存储数字。优选地作为数字,而不是作为字符串。如果必须是字符串,则使用不依赖于计算机语言设置的一致格式。