我有 NSSlider,我对它的变化进行了调整。但是我希望我的操作只有在滑块的浮点值是例如2.230000
或时才起作用3.410000
。
if (floatValue is y.xx0000) {
doSomething;
}
我的意思是,只有当我的浮点数只有 2 位不等于 0 时,我才想做一些动作。我该怎么做?
我有 NSSlider,我对它的变化进行了调整。但是我希望我的操作只有在滑块的浮点值是例如2.230000
或时才起作用3.410000
。
if (floatValue is y.xx0000) {
doSomething;
}
我的意思是,只有当我的浮点数只有 2 位不等于 0 时,我才想做一些动作。我该怎么做?
只有两个非零小数位的浮点值是 n.00、n.25、n.50 或 n.75 形式的数字。所有其他值都有两个以上的非零小数位。例如,您的示例 3.41 并不是真正的“3.41”。相反,它是:
3.410000000000000142108547152020037174224853515625
而“2.23”实际上是:
2.229999999999999982236431605997495353221893310546875
那么你真正想要做什么?
我玩这个游戏有点晚了,但是我在寻找类似的东西时发现了这个问题。在我看来,您要做的是将滑块设置的值四舍五入到小数点后 2 位。这样,您尝试使用滑块配置的事物和/或计算将始终有效,就好像它仅适用于精确的 2 个十进制值一样。
或者,您可以检查浮点值与四舍五入到小数点后 2 位之间的距离。然后设置一个例如 0.005 的阈值来表示它何时远离。