如何设置没有小数的货币,但只有在小数为零时?

时间:2014-08-17 22:54:09

标签: c# string-formatting

我目前正在使用以下内容将小数格式化为货币。

double value = 12345.6789;
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture));

// Result: $12,345.68

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

然后结果应为$12,345

我尝试使用像#这样的.ToString("C.##"等变体,但我不能按照我的意愿让它工作。

2 个答案:

答案 0 :(得分:2)

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

//decimal value = 12345.6789m;
decimal value = 12345.0000m;

var formatString = Decimal.Truncate(value) == value ? "C0" : "C";

Console.WriteLine(value.ToString(formatString, CultureInfo.CurrentCulture));

答案 1 :(得分:1)

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