我正在尝试编写一个基本上将字符串数组转换为字符串数组的函数,其中数组中的所有双精度都舍入为我设置的小数位数。数组中也可以有字符串,根本没有双精度值。解析字符串以逗号和点加倍
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();
结果却是:“你好”,“0.12”,“0.12”,但它是“你好”,“123.00”,“0.12”将把逗号以错误的方式。有没有人有一个简单而有效的解决方案呢?
解析时需要指定文化,否则只能在当前文化使用“,”作为小数点的地方使用。 – hultqvist 2013-10-30 09:39:58
没错。谢谢你的提醒。 – mmdemirbas 2013-10-30 09:44:04
我知道这个线程已经很长时间了,但是我会用'replace(char,char)'替换'Replace(string,string)'以获得更好的性能..... – Unknown6656 2016-02-22 09:11:19