格式化此数字的最佳方法是啥?

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 位小数的最佳方法是啥?

格式化消息以进行排队的最佳方法是啥?

Django 格式化表单的最佳方法是啥?

在 javascript 中从 .NET/Razor 解析本地化数字的最佳方法是啥?

为 Kindle 格式化 LaTeX 源代码的最佳方法是啥? [关闭]

以正确格式显示 localDateTime 的最佳方法是啥? [复制]