我正在尝试编写一个函数,它可以将字符串数组转换为另一个字符串数组,其中所有数组中的double类型值都被四舍五入到指定小数位数。该数组中也可能会包含非double类型的字符串。
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"。逗号被错误地处理了。有没有简单而高效的解决方案?