C# 将小于1的数字的字符串表示形式转换为双精度

C# 将小于1的数字的字符串表示形式转换为双精度,c#,string,double,C#,String,Double,Convert.ToDouble方法(字符串)将数字的指定字符串表示形式转换为等效的双精度浮点数 我有一行代码: 双d=转换为双倍(“0.3”) 它给了我3.0而不是0.3。对于大于1的数字,它按预期工作。 为什么?很可能是区域设置问题。有些区域性中,不是小数分隔符 尝试double.Parse(“0.3”,CultureInfo.InvariantCulture)尝试以下操作: NumberFormatInfo provider = new NumberFormatInfo(); provid

Convert.ToDouble方法(字符串)将数字的指定字符串表示形式转换为等效的双精度浮点数

我有一行代码: 双d=转换为双倍(“0.3”)

它给了我3.0而不是0.3。对于大于1的数字,它按预期工作。
为什么?

很可能是区域设置问题。有些区域性中,
不是小数分隔符

尝试
double.Parse(“0.3”,CultureInfo.InvariantCulture)

尝试以下操作:

NumberFormatInfo provider = new NumberFormatInfo();
provider.NumberDecimalSeparator = ".";
double d = Convert.ToDouble("0.3", provider);

当前的区域性设置是什么?这可能是因为在区域性设置中,您使用的“.”不是十进制分隔符

它可以与CultureInfo选项一起工作:double d=Convert.ToDouble(“0.3”,CultureInfo.InvariantCulture);我想你的意思是
Convert.ToDouble(“0,3”)
;-)就像那样,但我想要点,所以我把我的文化背景改成了点,一切似乎都很好,直到我尝试了小于零的数字。