将数字转换为特定于文化的
Convert number into culture specific
我有一个像 202667.4
这样的号码。我想根据文化 .
将其转换为数字
例如:
In "de"(German) the number should be in 202.667,40.
任何帮助将不胜感激。
谢谢。
您可以在将数字解析为德语格式时使用文化信息
试试这个方法:
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)
如果您想以文化特定格式表示现有数字(例如,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
并且你想要一个数字,请输入 Parse
(TryParse
):
string data = "202.667,40";
double result = double.Parse(data, CultureInfo.GetCultureInfo("de"));
Console.WriteLine(data.ToString(CultureInfo.InvariantCulture));
如果您不想在每次使用格式设置时都指定文化,您可以将文化设置为 current 一个:
CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("de");
...
double source = 202667.4;
Console.WriteLine($"{source:n}");
您可以使用此代码将变量转换为不同的区域性:
int MyInt = 100;
string MyString = MyInt.ToString("C",CultureInfo.GetCultureInfo("de-DE"));
MessageBox.Show(MyString);
如果你想用德语格式构建所有程序,你可以在你的主程序中使用此代码 class:
using System.Globalization;`
Application.CurrentCulture = CultureInfo.GetCultureInfo("de-DE");`
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);
}
我有一个像 202667.4
这样的号码。我想根据文化 .
例如:
In "de"(German) the number should be in 202.667,40.
任何帮助将不胜感激。
谢谢。
您可以在将数字解析为德语格式时使用文化信息
试试这个方法:
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)
如果您想以文化特定格式表示现有数字(例如,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
并且你想要一个数字,请输入 Parse
(TryParse
):
string data = "202.667,40";
double result = double.Parse(data, CultureInfo.GetCultureInfo("de"));
Console.WriteLine(data.ToString(CultureInfo.InvariantCulture));
如果您不想在每次使用格式设置时都指定文化,您可以将文化设置为 current 一个:
CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("de");
...
double source = 202667.4;
Console.WriteLine($"{source:n}");
您可以使用此代码将变量转换为不同的区域性:
int MyInt = 100;
string MyString = MyInt.ToString("C",CultureInfo.GetCultureInfo("de-DE"));
MessageBox.Show(MyString);
如果你想用德语格式构建所有程序,你可以在你的主程序中使用此代码 class:
using System.Globalization;`
Application.CurrentCulture = CultureInfo.GetCultureInfo("de-DE");`
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);
}