如何在函数内获取double值的绝对值(不使用math.h)

时间:2017-11-25 05:08:56

标签: c math double absolute arithmetic-expressions

在这种情况下,如何获得双差异的绝对值?

double cos_delta(double x, double delta)
 {
int n = 1;   // n should start with 1 because it is the number of terms

double diff = cos_N(x, n ) - cos_N(x, n - 1);  // n and n-1 instead of n-1 and n-2

********* here ************

while (diff > delta) { // fabs returns absolute value of a double

    n++;
    diff = cos_N(x, n ) - cos_N(x, n - 1);
}
printf("n = %d\n", n);
return cos_N(x, n);

}

1 个答案:

答案 0 :(得分:2)

您可以进行比较并输入结果(如果负值为double,则前缀为一元-(一元减号),否则值为正。)

使用简单的if语句将是解决此问题的最佳方法。

if( dblVal < 0 )
   dblVal =  -dblval;

或者您可以创建一个函数并像这样使用它

double myabs(double d){
    if( d < 0 )
      return -d;
    return d;
}

但使用数学库函数fabs()等总是更好。