0

我有 NSSlider,我对它的变化进行了调整。但是我希望我的操作只有在滑块的浮点值是例如2.230000或时才起作用3.410000

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

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

4

2 回答 2

4

只有两个非零小数位的浮点值是 n.00、n.25、n.50 或 n.75 形式的数字。所有其他值都有两个以上的非零小数位。例如,您的示例 3.41 并不是真正的“3.41”。相反,它是:

3.410000000000000142108547152020037174224853515625

而“2.23”实际上是:

2.229999999999999982236431605997495353221893310546875

那么你真正想要做什么?

于 2012-09-05T14:23:23.793 回答
0

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

或者,您可以检查浮点值与四舍五入到小数点后 2 位之间的距离。然后设置一个例如 0.005 的阈值来表示它何时远离。

于 2020-03-19T15:40:04.583 回答