【发布时间】:2012-07-19 12:03:20
【问题描述】:
我正在尝试编写一个函数,它基本上将字符串数组转换为字符串数组,其中数组中的所有双精度数都舍入到我设置的小数位数。数组中也可以有根本不是双精度值的字符串。
string[,] values = new string[1, 3];
values[0, 0] = "hello";
values[0, 1] = "0.123";
values[0, 2] = "0,123";
int decimalPlaces = 2;
double tmp;
string format = "F" + decimalPlaces.ToString();
IFormatProvider provider = CultureInfo.InvariantCulture;
for (int i = 0; i < values.GetLength(0); i++)
{
for (int j = 0; j < values.GetLength(1); j++)
{
if (double.TryParse(values[i, j], out tmp))
{
values[i, j] = tmp.ToString(format, provider);
}
}
}
Console.ReadLine();
结果必须是: "hello" , "0.12", "0.12" 但它是 "hello", "123.00", "0.12" 会以错误的方式处理逗号。有没有人为此提供简单有效的解决方案?
【问题讨论】:
-
正如 hultqvist 在评论中指出的那样,如果当前文化使用点“。”,则当前接受的答案会中断。作为小数点!那么,您介意将接受的答案更改为投票最多的答案吗?
标签: c#