Я пытаюсь написать функцию, которая в основном преобразует массив строк в массив строк, где все удвои в массиве округлены до количества десятичных мест, которые я задал. Также могут быть строки в массиве, которые вообще не являются двойными значениями.
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" будет обрабатывать запятую неправильно. У кого-нибудь есть простое и эффективное решение для этого?