如何将字符串格式化为越南语货币?

时间:2012-09-01 05:31:52

标签: c# string-formatting currency-formatting

如果我将[区域和语言]中的格式设置为美国...

CultureInfo cul = CultureInfo.CurrentCulture;
string decimalSep = cul.NumberFormat.CurrencyDecimalSeparator;//decimalSep ='.'
string groupSep = cul.NumberFormat.CurrencyGroupSeparator;//groupSep=','
sFormat = string.Format("#{0}###", groupSep);
string a = double.Parse(12345).ToString(sFormat);

结果是:12,345(正确)

但是如果我将[Region and Language]中的格式设置为VietNam,那么结果是:12345

结果应为12.345

你能帮帮我吗?感谢。

2 个答案:

答案 0 :(得分:6)

你的帮助太多了。格式说明符对文化不敏感,您始终使用逗号来指示分组字符的位置。然后在格式化字符串时将其替换为实际的分组字符。

格式正确:

        CultureInfo cul = CultureInfo.GetCultureInfo("vi-VN");   // try with "en-US"
        string a = double.Parse("12345").ToString("#,###", cul.NumberFormat);

您实际上应该使用“#,#”来确保它仍适用于具有不常见分组的文化。从问题是否重要到现在还不清楚,所以我为“#,###”

进行了抨击

答案 1 :(得分:3)

尝试这样的事情:

var value = 8012.34m;
var info = System.Globalization.CultureInfo.GetCultureInfo("vi-VN");
Console.WriteLine(String.Format(info, "{0:c}", value));

结果是:

8.012,34 ₫

哦,值为12345,结果为12.345,00 ₫