格式化货币

时间:2012-01-09 09:01:17

标签: c#

我有这个值:12345678,99

我想要这样:€12.345.678恢复“。”作为千位分隔符,不显示十进制数字并添加数字。

你知道格式化字符串吗?

谢谢,

5 个答案:

答案 0 :(得分:1)

This MSDN教程可能会有所帮助。 This列表提供了您可以使用的文化列表。由于您希望将.用作千位分隔符并使用欧元货币,因此您可以使用意大利语区域设置it-IT

答案 1 :(得分:0)

答案 2 :(得分:0)

如果您想要的风格不是特定于文化的话,您可以构建自己的格式化程序(请注意,控制台在默认字体上显示一个?用于€符号,这并不代表它没有&#39 ;工作):

private static void Main(string[] args)
{
     NumberFormatInfo nfi = new NumberFormatInfo();
     nfi.CurrencySymbol = "€";
     nfi.CurrencyGroupSeparator = ".";
     nfi.CurrencyDecimalSeparator = ".";

     decimal val = 300099.99M;

     Console.WriteLine(val.ToString("c", nfi));
     Console.Read();
}

如果它特定于某种文化,那么您可以执行以下操作(adapted from MSDN与npinti建议的文化 - IT):

public static void Main()
{
    int i = 100;
    CultureInfo it = new CultureInfo("it-IT");
    Console.WriteLine(i.ToString("c", it));
    Console.Read();
}

答案 3 :(得分:0)

试试这个:

        double jjj = 12345678.99d;

        NumberFormatInfo nfi = new CultureInfo("en-GB", false).NumberFormat;
        nfi.CurrencyGroupSeparator = ".";

        MessageBox.Show(jjj.ToString("C0", nfi));

答案 4 :(得分:0)

您需要使用具有正确分隔符和一些自定义格式的文化来舍入小数值并添加货币符号。

像是,

var value = 12345678.99m;
return value.ToString("€00,##0", CultureInfo.CreateSpecificCulture("el-GR"));

如果您的文化有正确的货币符号,我认为这样更好,

return value.ToString("C0", CultureInfo.CreateSpecificCulture("el-GR"));