C# 转换";。“1”&引用;。2“;加倍
我想把像C# 转换";。“1”&引用;。2“;加倍,c#,double,C#,Double,我想把像“.1”,“.2”等字符串转换成0.1,0.2等 我试过: Convert.ToDouble(".1") 它崩溃了。我理解它崩溃的原因,但我仍然需要将其转换为有效的双倍数字。我知道我可以通过拆分字符串和解析来实现这一点,但有没有更好的方法?转换。默认情况下,ToDouble使用当前区域性设置 您当前的区域性可能与的字符串不同 作为一种解决方案,您可以使用一个已经有的区域性作为NumberDecimalSeparator之类的,或者您可以使用CurrentCulture,将其设置为Num
“.1”
,“.2”
等字符串转换成0.1
,0.2
等
我试过:
Convert.ToDouble(".1")
它崩溃了。我理解它崩溃的原因,但我仍然需要将其转换为有效的双倍数字。我知道我可以通过拆分字符串和解析来实现这一点,但有没有更好的方法?
转换。默认情况下,ToDouble
使用当前区域性设置
您当前的区域性可能与
的字符串不同
作为一种解决方案,您可以使用一个已经有
的区域性作为NumberDecimalSeparator
之类的,或者您可以使用CurrentCulture
,将其设置为NumberDecimalSeparator
,并在Convert.ToDouble
方法(或double.Parse
)中使用克隆的区域性作为第二个参数
var d = double.Parse(".1", CultureInfo.InvariantCulture);
或
试试这个:
Double result = Double.Parse(".1", CultureInfo.InvariantCulture);
通过指定
CultureInfo.InvariantCulture
可以确保
是一个十进制分隔符。它不会“崩溃”,它会抛出一个异常。您的区域设置是使用逗号作为十进制分隔符的吗?它甚至没有这样做,您会得到什么错误?这适用于me@Sayse我得到“System.FormatException”这是您的真实代码吗?您可以使用ToDouble
-方法接受IFormatProvider的实例来提供自定义格式。每次。。。
Double result = Double.Parse(".1", CultureInfo.InvariantCulture);