iphone - 如何确保浮点值始终是 0.25 的倍数?

标签 iphone math

我有一个必须限制为 0.25 的倍数的浮点值。

有效值示例: 1.0, 1.25, 2.0, 2.5, 20.25, 20.5, 21.0, 21.25, ...

无效值的示例: 0.93, 3.31, 4.249, 5.02, ...

是否有数学函数或方便实现此目的的东西?当该值无效时,我会将其四舍五入为最接近的有效值。

最佳答案

嗯,达到你想要的结果...

float input = ????;

float desiredValue = ceilf(input*4.0f)/4.0f;

我认为 ceilf() 是 C99 的一部分,因此请确保您的编译器已设置为它。


[编辑]

虽然这不会测试输入 == 1/4 的倍数,但它会执行相同的操作。 1/4 的倍数不会改变。 @whatnick 提出了一个很好的观点,即浮点比较是不可靠的。

此外,不进行测试/跳跃会略微提高性能。 提升。

关于iphone - 如何确保浮点值始终是 0.25 的倍数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3814758/

相关文章:

iphone - 钛加速器 : Create system/icon buttons without placing on toolbar

iphone - 3D CAD 到 OpenGL

string - 用数学符号表示我们在编程中使用的字符串

python - 如何从信号中去除频率

php - 如何使用 PHP ImageMagic/Imagick 从 JSON/数据数组(宽度、高度、x、y、角度)创建大型(高质量 300dpi)图像

iphone - 处理 iPhone 上的错误和异常

iphone - 显示加载

iphone - 支持多个方向的最简单方法?当应用程序处于横向模式时,如何加载自定义 NIB?

javascript - 为什么这些 JavaScript 方程会输出不同(但几乎相同)的答案?

jquery - 在jquery的setInterval()和setTimeout()中使用十六进制