将"1.3"转换为双精度浮点数,结果为13。

4

这里发生了什么事情?

Convert.ToDouble("1.3")

我有一个值为"1.3"的字符串。当我将其转换为double类型时,它返回13。我想返回1.3。


1
猜测一下,你的区域格式是不是像“$1.000.000,00”这样的? - ta.speot.is
2
如果您使用Convert.ToDouble(string, IFormatProvider)重载,会发生什么情况? - Martin Costello
1
@Seva 在这种情况下,您正在使用本地的文化设置格式化数字。请使用我建议的重载(并在下面的答案中),它将按您的预期工作。 - Martin Costello
2
@Selman22 与本地环境相关的问题通常是大多数人在遇到一次“问题”之后才意识到真正问题所在的事情。 - ClickRick
显示剩余2条评论
1个回答

11

这可能与您当前的文化有关,它使用的是一个不同于.的小数分隔符号。您可以尝试这样做:

double.Parse("1.3", CultureInfo.InvariantCulture);

谢谢,那很棘手。我会在可能的时候标记为答案。 - alansiqueira27

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接