c函数向下舍入一半

时间:2011-05-03 14:22:12

标签: c programming-languages rounding

我正在搜索一个函数(用C语言),它提供了一半的向下舍入。例如:

1.5 after round half down = 1
1.49999999 after round half down = 1
1.50000001 after round half down = 2

4 个答案:

答案 0 :(得分:2)

以@ jtniehof的回答为基础。

ceil(x - 0.5)

这将永远是向下的一半。

答案 1 :(得分:1)

查看数学库中的round函数。

答案 2 :(得分:1)

惯用法:

int j;
float i = 0.49;
j = (int)(i + 0.5);

两个警告:

  1. 0.5将始终围捕
  2. 二进制中的浮点表示并不总是您所期望的十进制。 0.5可以准确表示; 0.3不是。在这种情况下不应该是一个问题,但始终牢记角落案件。
  3. 编辑:三个警告......对于负数而言肯定是错误的。如果您正在做任何复杂的事情,那么一定要查看数学库中的圆函数,因为它们已经处理了极端情况。但是如果在有限的输入上需要快速和脏,这将节省链接数学库。

答案 3 :(得分:0)

尝试roundf(float)round(double)