将“.1”、“.2”转换为双精度

Convert ".1", ".2" to double

我想将 ".1"".2" 等字符串转换为 0.10.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,您确保 . 成为小数点分隔符。