如何使用swift检查数字是否为小数?
使用Objective-C:
if (number == (int) number) {
//decimal
}
else {
//not decimal
}
Run Code Online (Sandbox Code Playgroud)
Jes*_*ssy 52
extension FloatingPoint {
var isInteger: Bool { rounded() == self }
}
Run Code Online (Sandbox Code Playgroud)
小智 7
迅速:
if number.rounded(.up) == number.rounded(.down){
//number is integer
}else{
//number is not integer
}
Run Code Online (Sandbox Code Playgroud)
如果你将数字向下舍入(你可以使用floor功能),然后从原始数字中减去它,你将得到两者之间的差异.
if (number - floor(number) > 0.000001) { // 0.000001 can be changed depending on the level of precision you need
// decimal
}
Run Code Online (Sandbox Code Playgroud)
编辑 -
我原来的答案建议计算数字和它的平均等价之间的差异,看看小数点后面是否有任何单位.然而,如稍后所述,可能存在舍入误差,其导致存储器中的值的表示与其实际意图的略微不同.
例如,3.0可以表示为3.00000000000001,因此number - floor(number) > 0它将返回true,即使它理论上应该返回false,因为偏移量将是0.00000000000001.
因此,请使用@ jessy的答案.
| 归档时间: |
|
| 查看次数: |
7950 次 |
| 最近记录: |