如何格式化没有小数的货币,但仅在小数为零时格式化货币

本文关键字:格式化 货币 小数 零时 | 更新日期: 2023-09-27 18:18:37

我目前正在使用以下方法将十进制格式化为货币。

double value = 12345.6789;
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture));
// Result: $12,345.68

这是我想要的行为,除非小数为 0,如double value = 12345.00;

那么结果应该是$12,345

我已经尝试过使用.ToString("C.##"#变体,但我无法让它像我想要的那样工作。

如何格式化没有小数的货币,但仅在小数为零时格式化货币

使用 decimal ,您可以确定要使用的格式字符串:

//decimal value = 12345.6789m;
decimal value = 12345.0000m;
var formatString = Decimal.Truncate(value) == value ? "C0" : "C";
Console.WriteLine(value.ToString(formatString, CultureInfo.CurrentCulture));

这样的事情怎么样.ToString("0.##")