基本的に文字列の配列を文字列の配列に変換する関数を作成しようとしています。この場合、配列内のすべての倍精度浮動小数点数は、設定した小数点以下の桁数に丸められます。配列には、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」はカンマを間違った方法で処理します。誰かがこれのためのシンプルで効率的な解決策を持っていますか?