如何从双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);