I have a number like 202667.4
. I want to convert this to number based on culture.
For Ex:
In "de"(German) the number should be in 202.667,40.
Any help will be greatly appreciated.
Thanks.
If you want to represent existing number (say, double
) in culture specific format, try formatting:
https://learn.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings
double source = 202667.4;
// "n" - ... group separators, and a decimal separator with optional negative sign
// "de" - German culture
string result = source.ToString("n", CultureInfo.GetCultureInfo("de"));
Console.WriteLine(result);
Outcome
202.667,40
If you are given a string
and you want a number, put Parse
(TryParse
):
string data = "202.667,40";
double result = double.Parse(data, CultureInfo.GetCultureInfo("de"));
Console.WriteLine(data.ToString(CultureInfo.InvariantCulture));
If you don't want to specify the culture each time you work with formatting, you can set the culture as a current one:
CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("de");
...
double source = 202667.4;
Console.WriteLine($"{source:n}");
You can use Culture info while parsing number into German format
Try with this approach:
string.Format(System.Globalization.CultureInfo.GetCultureInfo("de-DE"), "{0:000,000.00}", <your number>)
for example:
string result = string.Format(System.Globalization.CultureInfo.GetCultureInfo("de-DE"), "{0:000,000.00}", 202667.4)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With