22

通貨を表示するには、次のようにします。

ToString("0.##")

5.00の場合、出力は次のとおりです。

5

5.98の場合、出力は次のとおりです。

5.98

5.90の場合、出力は次のとおりです。

5.9

小数点以下2桁で表示するには、3番目のケースが必要です。例:

5.90

他の結果に影響を与えずにこれを行うにはどうすればよいですか?

4

6 に答える 6

25

試す:

value.ToString("#,##0.00")

あるいは単に:

value.ToString("C")

両方がゼロでない場合にのみ、小数点以下2桁すべてを展開する組み込みの方法はありません。ifおそらくそのためのステートメントを使用するでしょう。

if (s.EndsWith(".00"))
    s = s.Substring(0, s.Length - 3);
于 2012-05-03T18:41:26.317 に答える
18

これでは問題を解決する形式が得られないことはわかっていますが、これを回避するための簡単な解決策です。

(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
于 2012-05-03T18:52:56.030 に答える
11

次のような拡張メソッドを使用できます。

public static string ToCurrencyString(this decimal d)
{
    decimal t = Decimal.Truncate(d);
    return d.Equals(t) ? d.ToString("0.##") : d.ToString("#, ##0.00")
}
于 2012-05-03T19:03:56.093 に答える
10

#番号がない場合は空のままにすることを意味します0は番号がない場合は0を入れることを意味します

ToString( "0.00")

于 2012-05-03T18:44:31.553 に答える
1

私が何かを逃しているかどうかはわかりませんが、あなたはこれを行うことはできません:

decimal moneyvalue = 1921.39m;
string html = String.Format("Order Total: {0:C}", moneyvalue);
Console.WriteLine(html);
于 2015-03-17T18:22:05.640 に答える
0

使用するだけmyDecimal.ToString("N")で、

「N」パラメータを使用すると、小数が文字列に変換され、表示される小数の数はSO設定によって定義されます。

https://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.numberdecimaldigits(v=vs.110).aspx

于 2015-08-12T08:01:47.487 に答える