为什么使用fabs()而不是铸造?

时间:2014-09-22 10:58:49

标签: c++

我是C ++的新手,之前曾学过Java。我努力理解的是为什么使用fabs()函数(来自<cmath>)。我理解晶圆厂的作用,它是获得数字的绝对值(即更精确)。但是,你能不能像在Java中那样做:

int x = 1;
float x = (float) x;

使用fabs()函数有什么好处,而不仅仅是强制转换?

1 个答案:

答案 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