Double.Parse不能给出正确结果

12

我尝试在两个应用程序中实现这一点;一个控制台应用程序和一个Web应用程序。

在控制台应用程序中,当我尝试使用Double.Parse("0.5")时,它会给出0.5或者Double.Parse(".5")给出0.5。

但是,在Web应用程序中,Double.Parse("0.5")会给出5.0,Double.Parse(".5")会导致异常:

输入字符串的格式不正确。

有人能告诉我如何解决Web应用程序中的这个问题吗?


1
发布你正在使用的确切代码。它不应该这样做。 - George Duckett
1
@Oded 在 Web 应用程序中,它将“.”视为千位分隔符。 - Ben Robinson
1个回答

25

你应该提供文化信息,否则它将使用当前运行线程的文化信息。请尝试这个:

CultureInfo cultureInfo = CultureInfo.InvariantCulture; // or whatever you prefer
double result = double.Parse(".5", cultureInfo);

当时我正要写这个,但看到了你的答案。非常精准和简洁,不错! - user1241335
2
好的,我点击了“接受”按钮,可能只有一毫秒的延迟:p,它就起作用了,但是SO要求我等待3分钟:( - MNVR
@marc_s 网站强制要求在接受答案之前等待一定的时间,以鼓励用户稍等一会儿,以防更好的答案被发布。看起来是15分钟。 - Izkata

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