ConvertToDouble, если во французской локали неправильно конвертировать число - PullRequest
1 голос
/ 24 февраля 2020

У меня есть номер, хранящийся в базе данных в виде числа с плавающей запятой. В этом случае число составляет 93,75

double localCultreResult;
double.TryParse(rs["CostClaim"].ToString(), System.Globalization.NumberStyles.Any, CultureInfo.CurrentCulture, out localCultreResult);
if (rs["CostClaim"].ToString().Length > 0) {
    Cost.Value = localCultreResult;
};

Я хочу, чтобы значение стоимости отображалось как 93,75, когда во французском языке, но вместо этого выше дает мне 9375,00

Я также пытался все решения здесь: Как мне разобрать строку с десятичной запятой в двойную?

Все они преобразуют 93,75 в 9375, когда во французском языке

1 Ответ

1 голос
/ 24 февраля 2020

Если CultureInfo.CurrentCulture является французским, то rs ["CostClaim"]. ToString () будет проанализировано с ',' в качестве десятичной точки.

Что вы думаете о:

if (double.TryParse(rs["CostClaim"].ToString(), System.Globalization.NumberStyles.Any, 
    CultureInfo.GetCultureInfo("en-US"), out double localCultreResult))
{
    Cost.Value = localCultreResult;
}
...