Man*_*Ram 5 c# culture localization cultureinfo number-formatting
我有一个像 202667.4
. 我想根据文化将其转换为数字。
例如:
在“de”(德语)中,数字应为202.667,40。
任何帮助将不胜感激。
谢谢。
如果要以double
特定于文化的格式表示现有数字(例如),请尝试格式化:
https://docs.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);
Run Code Online (Sandbox Code Playgroud)
结果
202.667,40
Run Code Online (Sandbox Code Playgroud)
如果给定 astring
并且想要一个数字,请输入Parse
( TryParse
):
string data = "202.667,40";
double result = double.Parse(data, CultureInfo.GetCultureInfo("de"));
Console.WriteLine(data.ToString(CultureInfo.InvariantCulture));
Run Code Online (Sandbox Code Playgroud)
如果您不想在每次处理格式时都指定文化,您可以将文化设置为当前文化:
CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("de");
...
double source = 202667.4;
Console.WriteLine($"{source:n}");
Run Code Online (Sandbox Code Playgroud)