关于c#:如何确定decimal / double是否为整数? 您所在的位置:网站首页 如何判断double的值是不是0 关于c#:如何确定decimal / double是否为整数?

关于c#:如何确定decimal / double是否为整数?

2024-07-07 13:54| 来源: 网络整理| 查看: 265

如何判断一个十进制或双精度值是一个整数?

例如:

12decimal d = 5.0; // Would be true decimal f = 5.5; // Would be false

12double d = 5.0; // Would be true double f = 5.5; // Would be false

我之所以想知道这一点,是因为我可以通过编程确定是否要使用.ToString("N0")或.ToString("N2")输出值。如果没有小数点,那么我不想显示它。

对于浮点数,n % 1 == 0通常是检查是否有超过小数点的内容的方法。

1234567public static void Main (string[] args) {     decimal d = 3.1M;     Console.WriteLine((d % 1) == 0);     d = 3.0M;     Console.WriteLine((d % 1) == 0); }

输出:

12False True

更新:正如下面提到的@adrian lopez,与一个小值epsilon比较将丢弃浮点计算的错误计算。由于问题是关于double值,下面将是一个更为浮点计算证明的答案:

1Math.Abs(d % 1)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有