我是C ++的新手,之前曾学过Java。我努力理解的是为什么使用fabs()
函数(来自<cmath>
)。我理解晶圆厂的作用,它是获得数字的绝对值(即更精确)。但是,你能不能像在Java中那样做:
int x = 1;
float x = (float) x;
使用fabs()
函数有什么好处,而不仅仅是强制转换?
答案 0 :(得分:7)
听起来你并非完全了解fabs
的作用 - 它会返回数字的absolute value,即y = |x|
。因此,如果x
为正,则只返回x
,但如果x
为负,则返回-x
:
float x = 1.0f;
float y = abs(x); // y = x = 1.0f
float x = -1.0f;
float y = abs(x); // x = -1.0f, y = 1.0f