【发布时间】:2014-05-01 19:05:26
【问题描述】:
我正在尝试从控制台读取一个数字,但如果它是通过逗号输入的(例如 2,56),则无法成功解析。只有这样输入才能解析:2.56 我该如何改变呢? 这是一个示例代码:
if (double.TryParse(stringElements[i], out doubleNum))
{
averageTime.Add(doubleNum);
}
【问题讨论】:
-
你的
CurrentCulture是什么?还要显示您的代码。顺便说一句,我不喜欢这个.Replace的建议。因为如果你的字符串有,作为千位分隔符,你的代码也会被破坏并且你的解析可能会失败(当然取决于你当前的文化线程)。 -
我认为@SonerGönül 的评论是正确的,但作为一个黑客,如果你确定它是一个数字,你能不能简单地用句号替换单个逗号然后解析。
-
用户应该使用什么语言?保加利亚语?使用适当的
CultureInfo。不要用string.Replace替换分隔符! -
@Mihayloff: 你想支持 only 逗号(即
2,56有效,但2.56会失败)还是希望能够支持同时两种格式? -
@Mihayloff:那么
Replace是一个快速的 hack 修复(假设数千个分隔符对您来说不是问题)。在我的脑海中,也许更永久的事情是尝试用一种文化(小数)解析,如果失败,然后尝试用不同的文化(逗号),如果失败,假设输入是垃圾。