将".1",".2"转换为double

pet*_*ski -2 c# double

我想转换串像".1",".2"等进入0.1,0.2等等.

我试过了:

Convert.ToDouble(".1")
Run Code Online (Sandbox Code Playgroud)

它崩溃了.我理解为什么它会崩溃,但我仍然需要将它转换为有效的双数.我知道我可以通过拆分字符串和解析来做到这一点,但有更好的方法吗?

Son*_*nül 5

Convert.ToDouble默认情况下使用当前文化设置.

可能你现在的文化有不同的字符串而不是.a NumberDecimalSeparator.

作为一个解决方案,你可以使用一个文化已经.一个NumberDecimalSeparatorInvariantCulture,或者你可以CloneCurrentCulture,设置它的NumberDecimalSeparator.和使用的是在你的克隆培养Convert.ToDouble法(或double.Parse)作为第二个参数.

var d = double.Parse(".1", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

要么

var clone = (CultureInfo)CultureInfo.CurrentCulture.Clone();
clone.NumberFormat.NumberDecimalSeparator = ".";
var d = double.Parse(".1", clone);
Run Code Online (Sandbox Code Playgroud)