我希望绝对值来自负值 - 我觉得abs
- 函数和java一样容易使用 - 但不是!
似乎abs
- 函数返回一个int,因为我的值为3.8951,输出为3.000000
double d1 = abs(-3.8951);
printf("d1: ...%lf", d1);
如何解决此问题?那就是 - 我想要double
的绝对值。
答案 0 :(得分:76)
使用fabs()
(在 math.h 中)获取double
的绝对值:
double d1 = fabs(-3.8951);
答案 1 :(得分:15)
使用fabs
代替abs
查找double
(或float
)数据类型的绝对值。包含<math.h>
函数的fabs
标头。
double d1 = fabs(-3.8951);
答案 2 :(得分:4)
值得注意的是,Java可以重载abs
之类的方法,以便它可以使用整数或双精度。在C中,不存在重载,因此整数与双重需要不同的函数。
答案 3 :(得分:0)
我发现使用cabs(double)
,cabsf(float)
,cabsl(long double)
,__cabsf(float)
,__cabs(double)
,__cabsf(long double)
是解决方法
答案 4 :(得分:0)
//use fabs()
double sum_primary_diagonal=0;
double sum_secondary_diagonal=0;
double difference = fabs(sum_primary_diagonal - sum_secondary_diagonal);