一尘不染

快速检查数字是否为十进制

swift

如何检查数字是否为小数?

使用Objective-C:

if (number == (int) number) {
  //decimal
}
else {
  //not decimal
}

阅读 249

收藏
2020-07-07

共1个答案

一尘不染

如果将数字四舍五入(可以使用下限功能来完成),然后从原始数字中减去该数字,则会得到两者之间的差。

if (number - floor(number) > 0.000001) { // 0.000001 can be changed depending on the level of precision you need
    // decimal
}

编辑-

我的原始答案建议计算数字与其下限等值之间的差,以查看小数点后是否有任何单位。但是,如后面所述,可能存在舍入错误,这会导致内存中值的表示与实际含义略有不同。

例如,3.0可以表示为3.00000000000001,因此number - floor(number) > 0即使理论上它应该返回false,因为偏移量为0.00000000000001,也将返回true。

因此,请使用下面的@jessy答案。

2020-07-07