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