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

Mic*_*res -4 c++

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

int x = 1;
float x = (float) x;
Run Code Online (Sandbox Code Playgroud)

使用fabs()函数有什么好处,而不仅仅是投射?

Pau*_*l R 7

听起来你并不完全明白fabs什么- 它返回一个数字的绝对值,即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
Run Code Online (Sandbox Code Playgroud)