格式化此数字的最佳方法是啥?
Posted
技术标签:
【中文标题】格式化此数字的最佳方法是啥?【英文标题】:Whats the best way to format this number?格式化此数字的最佳方法是什么? 【发布时间】:2011-09-02 13:25:37 【问题描述】:我有一个double
,我想使用以下规则对其进行格式化:
-
如果没有小数位,则只显示数字(参见下面的 100 示例)
如果有任何小数位显示 2 个小数位
所以,举几个例子:
100 --> 100
99.958443534 --> 99.96
99.1 -> 99.10
【问题讨论】:
【参考方案1】:你可以检查它是否是一个整数,使用基于它的格式类型:
string res = string.Format(((number % 1) == 0) ? "0:0" : "0:0.00", number);
【讨论】:
【参考方案2】:怎么样:
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【参考方案3】:你可以使用:
decimal a = 99.949999999M;
Math.Round(a, 2); // Returns 99.95
【讨论】:
他希望 28 返回 28,而不是 28.00 @Neil Knight - 这不是我想要的。如前所述,如果数字中没有小数点,我不想显示“.00”以上是关于格式化此数字的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
在 jQuery 中,将数字格式化为 2 位小数的最佳方法是啥?
在 javascript 中从 .NET/Razor 解析本地化数字的最佳方法是啥?