在Objective C/Cocoa Touch中将浮点向下舍入到最接近的0.5

Big*_*ggs 4 c cocoa-touch objective-c

我想将一个浮点数向下舍入,这样我就可以得到0.5到7之间的任何值(任意小数位数),同时舍入任何低于0.5到0.5的值.

例如,

0.1, 0.11442, 0.46 would all be 0.5.
1.1, 1.43, 1.35 would all be 1.
1.56, 1.6, 1.8 would all be 1.5.
Run Code Online (Sandbox Code Playgroud)

超过5的任何一个将向下舍入到5.

我想要的最终数据集是0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5.

我不知道任何向下舍入的函数Objective C,而不是整数.

Dru*_*erB 23

floor()将浮点数向下舍入到下一个整数.如果你先乘以2,向下舍入,然后除以2,你将得到所需的结果.

float rounded = value < 0.5f ? 0.5f : floorf(value * 2) / 2;
Run Code Online (Sandbox Code Playgroud)