如何从双c语言中获取绝对价值

时间:2014-01-06 18:05:55

标签: c double

我希望绝对值来自负值 - 我觉得abs - 函数和java一样容易使用 - 但不是!

似乎abs - 函数返回一个int,因为我的值为3.8951,输出为3.000000

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

如何解决此问题?那就是 - 我想要double的绝对值。

5 个答案:

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