将“.1”、“.2”转换为双精度
Convert ".1", ".2" to double
我想将 ".1"
、".2"
等字符串转换为 0.1
、0.2
等
我试过了:
Convert.ToDouble(".1")
它崩溃了。我明白它为什么会崩溃,但我仍然需要将它转换为有效的双精度数。我知道我可以通过拆分字符串和解析来做到这一点,但是有更好的方法吗?
Convert.ToDouble
默认使用当前区域性设置 。
可能您当前的文化字符串与 .
不同,因为 NumberDecimalSeparator
。
作为解决方案,您可以使用 已经 具有 .
作为 NumberDecimalSeparator
的文化,例如 InvariantCulture
, or your can Clone
您的 CurrentCulture
,将其 NumberDecimalSeparator
设置为 .
并在 Convert.ToDouble
方法(或 double.Parse
)中使用 that 克隆文化作为第二个参数.
var d = double.Parse(".1", CultureInfo.InvariantCulture);
或
var clone = (CultureInfo)CultureInfo.CurrentCulture.Clone();
clone.NumberFormat.NumberDecimalSeparator = ".";
var d = double.Parse(".1", clone);
试试这个:
Double result = Double.Parse(".1", CultureInfo.InvariantCulture);
通过指定 CultureInfo.InvariantCulture
,您确保 .
成为小数点分隔符。
我想将 ".1"
、".2"
等字符串转换为 0.1
、0.2
等
我试过了:
Convert.ToDouble(".1")
它崩溃了。我明白它为什么会崩溃,但我仍然需要将它转换为有效的双精度数。我知道我可以通过拆分字符串和解析来做到这一点,但是有更好的方法吗?
Convert.ToDouble
默认使用当前区域性设置 。
可能您当前的文化字符串与 .
不同,因为 NumberDecimalSeparator
。
作为解决方案,您可以使用 已经 具有 .
作为 NumberDecimalSeparator
的文化,例如 InvariantCulture
, or your can Clone
您的 CurrentCulture
,将其 NumberDecimalSeparator
设置为 .
并在 Convert.ToDouble
方法(或 double.Parse
)中使用 that 克隆文化作为第二个参数.
var d = double.Parse(".1", CultureInfo.InvariantCulture);
或
var clone = (CultureInfo)CultureInfo.CurrentCulture.Clone();
clone.NumberFormat.NumberDecimalSeparator = ".";
var d = double.Parse(".1", clone);
试试这个:
Double result = Double.Parse(".1", CultureInfo.InvariantCulture);
通过指定 CultureInfo.InvariantCulture
,您确保 .
成为小数点分隔符。