如何从双C语言中获得绝对价值

我想要一个负值的abs – 我认为这个abs函数和java一样容易使用 – 但不是!

看来, abs函数返回一个int,因为我有3.8951的值和输出是3.000000

 double d1 = abs(-3.8951); printf("d1: ...%lf", d1); 

我该如何解决这个问题? 那就是 – 我想要一个double的绝对值。

使用fabs() (在math.h中 )获得double绝对值:

 double d1 = fabs(-3.8951); 

使用fabs而不是abs来查找double (或float )数据types的绝对值。 包含fabs函数的<math.h>头文件。

 double d1 = fabs(-3.8951); 

值得注意的是,Java可以重载一个像abs这样的方法,这样它就可以使用整数或者双精度。 在C中,重载不存在,所以你需要不同的函数来处理double和double。