将数字转换为特定文化

时间:2017-11-16 07:23:50

标签: c# localization number-formatting cultureinfo culture

我有一个像202667.4的号码。我想根据文化将其转换为数字

对于Ex:

  

在“de”(德语)中,数字应为 202.667,40

非常感谢任何帮助。

感谢。

4 个答案:

答案 0 :(得分:2)

如果您想以文化特定格式表示现有数字(例如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);

结果

202.667,40

如果您获得string并且想要一个号码,请添加ParseTryParse):

string data = "202.667,40";

double result = double.Parse(data, CultureInfo.GetCultureInfo("de"));

Console.WriteLine(data.ToString(CultureInfo.InvariantCulture));

如果您不想在每次使用格式时指定文化,可以将文化设置为当前

CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("de");

...

double source = 202667.4;

Console.WriteLine($"{source:n}");

答案 1 :(得分:0)

您可以在将数字解析为德语格式时使用文化信息

尝试这种方法:

string.Format(System.Globalization.CultureInfo.GetCultureInfo("de-DE"), "{0:000,000.00}", <your number>)

例如:

 string result = string.Format(System.Globalization.CultureInfo.GetCultureInfo("de-DE"), "{0:000,000.00}", 202667.4)

答案 2 :(得分:0)

您可以使用此代码将变量转换为不同的文化。

int MyInt = 100; string MyString = MyInt.ToString("C",CultureInfo.GetCultureInfo("de-DE")); MessageBox.Show(MyString);

如果你想用德语格式构建所有程序你可以在你的主要课程中编写代码。

using System.Globalization;

Application.CurrentCulture = CultureInfo.GetCultureInfo("de-DE");

答案 3 :(得分:0)

 System.Globalization.CultureInfo EnglishCulture = new 
System.Globalization.CultureInfo("en-EN");
System.Globalization.CultureInfo GermanCulture = new 
System.Globalization.CultureInfo("de-de");

必要的转型,

double val;
if(double.TryParse("65,89875", System.Globalization.NumberStyles.Float, 
GermanCulture,  out val))
{
string valInGermanFormat = val.ToString(GermanCulture);
string valInEnglishFormat = val.ToString(EnglishCulture);
 }

if(double.TryParse("65.89875", System.Globalization.NumberStyles.Float, 
EnglishCulture,  out val))
{
string valInGermanFormat = val.ToString(GermanCulture);
string valInEnglishFormat = val.ToString(EnglishCulture);
 }