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

如何从双c语言中获取绝对值,c,double,C,Double,我想要一个负双精度的绝对值,我认为abs-函数和java中一样容易使用,但不是 似乎abs-函数返回一个int,因为我的值是3.8951,输出是3.000000 double d1 = abs(-3.8951); printf("d1: ...%lf", d1); 我如何解决这个问题?也就是说-我想要一个double的绝对值(在math.h中)来获得double的绝对值: double d1 = fabs(-3.8951); 使用fabs而不是abs查找double(或float)数据类型的

我想要一个负双精度的绝对值,我认为
abs
-函数和java中一样容易使用,但不是

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

double d1 = abs(-3.8951);
printf("d1: ...%lf", d1);
我如何解决这个问题?也就是说-我想要一个
double

的绝对值(在math.h中)来获得
double
的绝对值:

double d1 = fabs(-3.8951);

使用
fabs
而不是
abs
查找
double
(或
float
)数据类型的绝对值。为
fabs
功能包括
标题

double d1 = fabs(-3.8951);

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

我发现使用
cabs(double)
cabsf(float)
cabsl(long double)
cabsf(float)
cabsf(long double)
是解决方案。

你试过
fabs吗(-3.8951)
man abs
表示“计算整数的绝对值”,而
fabs(3)
在“另见”中交叉引用不要假设事物在不同语言上的工作方式是相同的。尤其是java有类,而且可以重载方法,但是C没有。谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!我想在未来的ABS中,它只在C中被实现为整数。这就是为什么答案都是建议你使用FAB,这是浮点等值。lent.“负双精度的绝对值”很简单:
-x
;-)就像你赢的比haccks快一点一样。fabs()是双精度的。fabsf()代表浮点数。这两个函数都同样值得我的喜爱。这些类似cabs的函数是用于复数的,所以它可能超出了这个问题的范围。这将有助于你的帖子,包括这些信息(并可能解释
cabs
\uu cabs
之间的区别),“在C中,重载不存在”-->部分不同意,研究
fabs()
用于各种FP类型。类似的效果是可能的。
  //use fabs()
  double sum_primary_diagonal=0;
  double sum_secondary_diagonal=0;
  double difference = fabs(sum_primary_diagonal - sum_secondary_diagonal);