转换数字并接受任何小数分隔符

时间:2014-04-01 15:16:49

标签: c# formatting

我有一个双号0,401780062641746

我想将其格式化为0.40178006

我正在使用此代码:

string.Format("{0:0.00000000%}", dNum);

但结果是40.17800626

我希望能够为小数点分隔符输入.,。所以我正在使用

NumberStyles.Any

示例:

double.TryParse(textBox1.Text, NumberStyles.Any, CultureInfo.InvariantCulture, out dNum);

但显然这是一个问题,现在我无法按照我想要的方式转换数字 有任何想法吗?

1 个答案:

答案 0 :(得分:1)

如果需要处理小数点,那么你不需要处理分组分隔符,最简单的选择就是用点替换任何逗号:

string input = ...;
input = input.Replace(',', '.');
double value;
if (double.TryParse(input, CultureInfo.InvariantCulture))
{
    // Use value
}
else
{
    // Handle invalid input
}

请注意,这将处理.,作为十进制分隔符,并且不会执行任何其他特定于文化的解析。