我目前正在使用以下内容将小数格式化为货币。
double value = 12345.6789;
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture));
// Result: $12,345.68
我想要的行为是什么,除非小数为0,如double value = 12345.00;
然后结果应为$12,345
我尝试使用像#
这样的.ToString("C.##"
等变体,但我不能按照我的意愿让它工作。
答案 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.##")