2011-09-02 87 views
3

我有一个double,我想它的规则如下格式:格式化此号码的最佳方式是什么?

  1. 如果没有小数位只显示编号(见下文100例)
  2. 如果有任何小数秀2小数位数

所以,作为一个例子:

100 --> 100 
99.958443534 --> 99.96 
99.1 -> 99.10 

回答

0

您可以使用:

decimal a = 99.949999999M; 

Math.Round(a, 2); // Returns 99.95 
+2

他希望28返回28,而不是28.00 – deepee1

+1

@尼尔骑士 - 那不是我想要的。如数字中没有小数点所述,我不想显示“.00” – leora

4

如果你可以检查整个号码,使用格式基于这样的类型:

string res = string.Format(((number % 1) == 0) ? "{0:0}" : "{0:0.00}", number); 
1

什么:

var a = 100; 
var b = 99.95844354; 

var aAnswer = a.ToString("0.##"); //aAnswer is "100" 
var bAnswer = b.ToString("0.##"); //bAnswer is "99.96" 
+1

这将工作,如果总是有两位小数。如果OP有1.2,那么我认为他们预期结果是1.20。这会导致1.2 – SwDevMan81

+1

@ SwDevMan81:你说得对。所以你的答案是要走的路! – WaltiD

相关问题