我的代码:
#inlcude <math.h>
#include "draw.h" /*int draw(int x, int y)*/
draw(rintf(10 * x), rintf(8 * y));
我收到此警告:从'float'转换为'int'可能会改变其值。
我无法将draw
更改为浮动,因为我需要它来绘制点数。因此舍入是不可避免的。有任何想法吗?
答案 0 :(得分:1)
rintf
的返回类型为float
,会产生警告。您可以显式转换为int
以取消警告(即(int) rintf(10 * x)
,或者您可以使用其他舍入方式(例如,如果已知值为非负值,{{1} })或(int) (10.0f * x + 0.5f)
(最好来自lrint
),尽管它会返回tgmath.h
,这可能会导致另一个警告,具体取决于您的编译器和设置。