通貨を表示するには:
ToString("0.##")
値5.00
出力は次のとおりです。
5
値5.98
出力は次のとおりです。
5.98
値5.90
出力は次のとおりです。
5.9
小数点以下2桁の3番目のケースが必要です。例:
5.90
他の結果に影響を与えずにこれを行うにはどうすればよいですか?
これで問題を解決する形式が得られないことはわかっていますが、それを回避する簡単な解決策です。
(5.00).ToString("0.00").Replace(".00",""); // returns 5
(5.90).ToString("0.00").Replace(".00", ""); // returns 5.90
(5.99).ToString("0.00").Replace(".00", ""); // returns 5.99
試してください:
s.ToString("#,##0.00")
あるいは単に:
s.ToString("C")
両方がゼロでない場合にのみ、小数点以下2桁をすべて拡張する組み込みの方法はありません。おそらくif
ステートメントを使用するだけでしょう。
int len = s.Length;
if (s[len - 2] == '0' && s[len - 1] == '0')
s = s.Left(len - 3);
次のような拡張メソッドを使用できます。
public static string ToCurrencyString(this decimal d)
{
decimal t = Decimal.Truncate(d);
return d.Equals(t) ? d.ToString("0.##") : d.ToString("#, ##0.00")
}
#
は、数字がない場合は空のままにすることを意味します0数字がない場合は0を入力します
ToString( "0.00")
私が何かを見逃しているかどうかはわかりませんが、あなたはこれを行うことはできません:
decimal moneyvalue = 1921.39m;
string html = String.Format("Order Total: {0:C}", moneyvalue);
Console.WriteLine(html);