我需要将小数格式化为次要货币,例如 10.00 应该是 1000。
decimal currency = 10.00m;
System.Console.WriteLine(currency.ToString("######"));
产生10,我如何获得要添加的小数点?
我需要将小数格式化为次要货币,例如 10.00 应该是 1000。
decimal currency = 10.00m;
System.Console.WriteLine(currency.ToString("######"));
产生10,我如何获得要添加的小数点?
解决方案很简单
* 100
我会创建一个这样的扩展方法,它总是会产生预期的结果,并具有所需的小数位数:
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