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

use*_*478 56 c double

我希望绝对值来自负二 - 我认为abs-function 和java一样容易使用 - 但不是!

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

double d1 = abs(-3.8951);
printf("d1: ...%lf", d1);
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?那就是 - 我想要a的绝对值double.

her*_*tao 82

使用fabs()(in math.h)获取绝对值double:

double d1 = fabs(-3.8951);
Run Code Online (Sandbox Code Playgroud)

  • fabs()是双打的.fabsf()是浮动的. (14认同)
  • 因为你比你赢得的haccks快一点. (3认同)
  • 他们两个都值得我的爱. (3认同)

hac*_*cks 18

使用fabs而不是abs查找double(或float)数据类型的绝对值.包括函数的<math.h>标题fabs.

double d1 = fabs(-3.8951);
Run Code Online (Sandbox Code Playgroud)


lur*_*ker 5

值得注意的是,Java 可以重载方法,以便abs它可以处理整数或双精度数。在 C 中,不存在重载,因此整数和双精度需要不同的函数。