将小数格式化为次要货币

时间:2012-09-25 00:24:18

标签: c#

我需要将小数格式化为次要货币,例如10.00应该是1000。

decimal currency = 10.00m;
System.Console.WriteLine(currency.ToString("######"));

生成10,如何将小数点添加到其中?

2 个答案:

答案 0 :(得分:1)

解决方案就像

一样简单
* 100

答案 1 :(得分:0)

我会创建一个这样的扩展方法,它会产生预期的结果,并带有所需的小数位数:

public static class DecimalExtension
{
    public static string FormatAsMinorCurrency(this decimal value) {
        var numberFormat = (NumberFormatInfo)CultureInfo.CurrentCulture.NumberFormat.Clone();
        numberFormat.CurrencyDecimalDigits = 2;
        numberFormat.CurrencyDecimalSeparator = ".";
        numberFormat.CurrencySymbol = "";
        numberFormat.CurrencyGroupSeparator = "";
        return value.ToString("c", numberFormat).Replace(".", "");
    }
}

结果:

1.FormatAsMinorCurrency() 
100

10.FormatAsMinorCurrency()
1000

1000000.34102350915091M.FormatAsMinorCurrency()
100000034