格式化这个数字的最佳方法是什么?

发布于 2024-12-03 04:43:45 字数 223 浏览 0 评论 0 原文

我有一个 double,我想按照以下规则对其进行格式化:

  1. 如果没有小数位,则仅显示数字(请参见下面的 100 示例)
  2. 如果有任何小数位,则显示 2 个小数位

所以,举几个例子:

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

I have a double and I want to format it with the following rules:

  1. If there are no decimal places show just the number (see 100 example below)
  2. If there are any decimal places show 2 decimal places

So, as a few examples:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

〃温暖了心ぐ 2024-12-10 04:43:45

您可以检查它是否是整数,并根据该值使用格式类型:

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

You could check if its a whole number, the use the type of formatting based on that:

string res = string.Format(((number % 1) == 0) ? "{0:0}" : "{0:0.00}", number);
随心而道 2024-12-10 04:43:45

怎么样:

var a = 100;
var b = 99.95844354;

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

What about:

var a = 100;
var b = 99.95844354;

var aAnswer = a.ToString("0.##"); //aAnswer is "100"
var bAnswer = b.ToString("0.##"); //bAnswer is "99.96"
情仇皆在手 2024-12-10 04:43:45

您可以使用:

decimal a = 99.949999999M;

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

You can use:

decimal a = 99.949999999M;

Math.Round(a, 2);  // Returns 99.95
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文