我有一个double
,我想它的规则如下格式:格式化此号码的最佳方式是什么?
- 如果没有小数位只显示编号(见下文100例)
- 如果有任何小数秀2小数位数
所以,作为一个例子:
100 --> 100
99.958443534 --> 99.96
99.1 -> 99.10
我有一个double
,我想它的规则如下格式:格式化此号码的最佳方式是什么?
所以,作为一个例子:
100 --> 100
99.958443534 --> 99.96
99.1 -> 99.10
您可以使用:
decimal a = 99.949999999M;
Math.Round(a, 2); // Returns 99.95
如果你可以检查整个号码,使用格式基于这样的类型:
string res = string.Format(((number % 1) == 0) ? "{0:0}" : "{0:0.00}", number);
什么:
var a = 100;
var b = 99.95844354;
var aAnswer = a.ToString("0.##"); //aAnswer is "100"
var bAnswer = b.ToString("0.##"); //bAnswer is "99.96"
这将工作,如果总是有两位小数。如果OP有1.2,那么我认为他们预期结果是1.20。这会导致1.2 – SwDevMan81
@ SwDevMan81:你说得对。所以你的答案是要走的路! – WaltiD
他希望28返回28,而不是28.00 – deepee1
@尼尔骑士 - 那不是我想要的。如数字中没有小数点所述,我不想显示“.00” – leora