如何检查float是否只有2个小数位不等于0

时间:2012-09-05 14:19:48

标签: objective-c slider decimal

我有NSSlider,我直言它的变化。但我希望我的操作仅在滑块的浮点值为2.2300003.410000时才起作用。

if (floatValue is y.xx0000) {
    doSomething;
}

我的意思是,只有当我的浮点只有2个小数位不等于0时我才想做一些动作。我怎么能这样做?

2 个答案:

答案 0 :(得分:4)

仅具有两个非零小数位的浮点值是n.00,n.25,n.50或n.75形式的数字。所有其他值都有两个以上的非零小数位。例如,你的例子3.41,实际上不是“3.41”。相反,它是:

3.410000000000000142108547152020037174224853515625

和“2.23”实际上是:

2.229999999999999982236431605997495353221893310546875

那你真正想做什么?

答案 1 :(得分:0)

我对这款游戏有些迟了,但是我在搜索类似内容时发现了这个问题。 在我看来,您想要做的就是将滑块的值四舍五入到小数点后两位。这样,您尝试使用滑块配置的事物和/或计算将始终有效,就好像它仅适用于精确的2个十进制值一样。

或者,您可以检查浮点值与该值之间的距离有多大(四舍五入到小数点后两位)。然后设置一个例如0.005的阈值,确定何时到达较远的距离。