2014-04-06 64 views
1

我知道ceil函数的作用,它将数字向上舍入。 所以; 1.3至2.0和5.9至6.0。 但我希望它以0.5的步长取整。 所以; 1.3至1.5和5.9至6.0。 这可能吗? 谢谢!使用ceil()函数更高级

+0

注意:一旦'| X |'超过约'电源(2 DBL_MANT_DIG -1)','double'失去舍入到的能力最近0.5。 – chux

回答

4
y = ceil(x * 2.0)/2.0; 

应该做你需要的东西:

x  x*2.0 ceil(x*2.0) y 
------------------------------ 
1.3 2.6  3.0   1.5 
1.6 3.2  4.0   2.0 
5.9 11.8 12.0   6.0 
+0

聪明!我不敢相信我没有为自己弄明白这一点!谢谢! – Vince