从“float”转换为“int”可能会改变它的价值
Conversion to ‘int’ from ‘float’ may alter its value
我的代码:
#inlcude <math.h>
#include "draw.h" /*int draw(int x, int y)*/
draw(rintf(10 * x), rintf(8 * y));
我收到此警告:从“float”转换为“int”可能会改变其值。
我无法将 draw
更改为浮动,因为我需要它来绘制点。所以四舍五入是不可避免的。有任何想法吗?
rintf
的 return 类型是 float
,它会产生警告。您可以显式转换为 int
以抑制警告(即 (int) rintf(10 * x)
,或者您可以使用另一种舍入方式(例如,如果已知值是非负的,(int) (10.0f * x + 0.5f)
) 或 lrint
(最好来自 tgmath.h
),尽管它 return 是一个 long
,根据您的编译器和设置可能会导致另一个警告。
我的代码:
#inlcude <math.h>
#include "draw.h" /*int draw(int x, int y)*/
draw(rintf(10 * x), rintf(8 * y));
我收到此警告:从“float”转换为“int”可能会改变其值。
我无法将 draw
更改为浮动,因为我需要它来绘制点。所以四舍五入是不可避免的。有任何想法吗?
rintf
的 return 类型是 float
,它会产生警告。您可以显式转换为 int
以抑制警告(即 (int) rintf(10 * x)
,或者您可以使用另一种舍入方式(例如,如果已知值是非负的,(int) (10.0f * x + 0.5f)
) 或 lrint
(最好来自 tgmath.h
),尽管它 return 是一个 long
,根据您的编译器和设置可能会导致另一个警告。