【发布时间】:2016-02-01 10:28:10
【问题描述】:
我的代码:
#inlcude <math.h>
#include "draw.h" /*int draw(int x, int y)*/
draw(rintf(10 * x), rintf(8 * y));
我收到此警告:从“float”转换为“int”可能会改变其值。
我无法将draw 更改为浮动,因为我需要它来绘制点。所以四舍五入是不可避免的。有任何想法吗?
【问题讨论】:
-
显式转换为
int可能会对您有所帮助。或者更改rintf可能是一个(不太好的)替代方案。 -
取int draw(float x, float y)
-
x和y的类型是什么? -
你为什么用
rintf()而不是nearbyintf()? -
@FUZxxl 来自
man nearbyintf:“如果应用程序不依赖于保留的标志,rint()通常比nearbyint()性能更高”。此应用程序不依赖于保留的标志。
标签: c floating-point int rounding c99