J'essaie d'écrire une fonction qui convertit un tableau de chaînes de caractères en un tableau de chaînes de caractères où tous les doubles du tableau sont arrondis au nombre de décimales que j'ai fixé. Il peut aussi y avoir des chaînes dans le tableau qui ne sont pas du tout des valeurs doubles.
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();
Le résultat doit être : "hello" , "0.12", "0.12" mais "hello", "123.00", "0.12" traitera la virgule de la mauvaise manière. Quelqu'un a-t-il une solution simple et efficace ?