2014-09-22 48 views
-4

我是C++的新手,之前学过Java。我在努力理解的是为什么使用fabs()函数(从<cmath>)。我明白晶圆厂的作用,就是获得数字的绝对值(即更精确)。但是,你能不能只是做它在Java中:为什么使用晶圆厂()而不是铸造?

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

什么是使用fabs()功能,而不仅仅是铸造好处?

+3

绝对值并不意味着更高的精度。 – dornhege 2014-09-22 11:03:38

+0

用数字进行编程时,您必须先学习的第一件事:您无法凭空获得更高的精度。 – kay 2014-09-22 11:04:00

回答

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