我需要一个简单的浮点舍入函数,因此:
double round(double);
round(0.1) = 0
round(-0.1) = 0
round(-0.9) = -1
Run Code Online (Sandbox Code Playgroud)
我能找到ceil()和floor()在math.h中-但不是round().
它是以另一个名称存在于标准C++库中,还是缺少?
可能重复:
C++中float的round()
我有一个双(称为x),意味着55,但实际存储为54.999999999999943157,我刚才意识到.
所以,当我这样做
double x = 54.999999999999943157;
int y = (int) x;
Run Code Online (Sandbox Code Playgroud)
y = 54而不是55!
这困惑了我很久了.如何让它正确圆?
我使用的嵌入式C没有round()函数它是数学库,在C中实现它的简洁方法是什么?我想把它打印成一个字符串,查找小数位,然后在句点后找到第一个字符,然后在> = 5时向上舍入,否则向下.想知道是否有更聪明的东西.
谢谢,弗雷德
我在Linux(AS 3)上使用GCC 3.4并试图弄清楚DBL_EPSILON,或者至少是一个不错的近似值.我怎样才能以编程方式获得它?