关于c#:如何确定decimal / double是否为整数? | 您所在的位置:网站首页 › 如何判断double的值是不是0 › 关于c#:如何确定decimal / double是否为整数? |
如何判断一个十进制或双精度值是一个整数? 例如: 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 实验室设备网 版权所有 |