我正在嘗試編寫一個基本上將字符串數組轉換爲字符串數組的函數,其中數組中的所有雙精度都舍入爲我設置的小數位數。數組中也可以有字符串,根本沒有雙精度值。解析字符串以逗號和點加倍
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