如何格式化没有小数的货币,但仅在小数为零时格式化货币
本文关键字:格式化 货币 小数 零时 | 更新日期: 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.##")