我正在尝试编写一个函数,该函数基本上将字符串数组转换为字符串数组,其中数组中的所有双精度数都舍入到我设置的小数位数。数组中也可以有根本不是双精度值的字符串。
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" 会以错误的方式处理逗号。有没有人对此有一个简单有效的解决方案?