I have a decimal value ("133,3") stored in string column in the database, in norway culture.
after that user changed the regional setting to english-Us. when I convert "133,3" to decimal using CultureInfo.InvariantCulture, getting invalid value or error.
is there any best way to handle this scenario in C# application?
regards, Anand
Regardless of the system culture, if you specify CultureInfo.InvariantCulture
you won't be able to parse "133,3" as a decimal to 133.3. The same is true for US English.
You could just specify a Norwegian culture when parsing the value (using the overload of decimal.TryParse
which takes an IFormatProvider
), or (preferrably) change the field in the database to reflect the real data type (a decimal number) instead.