Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 转换";。“1”&引用;。2“;加倍_C#_Double - Fatal编程技术网

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);