在这种情况下,如何获得双差异的绝对值?
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);
}
答案 0 :(得分:2)
您可以进行比较并输入结果(如果负值为double,则前缀为一元-
(一元减号),否则值为正。)
使用简单的if
语句将是解决此问题的最佳方法。
if( dblVal < 0 )
dblVal = -dblval;
或者您可以创建一个函数并像这样使用它
double myabs(double d){
if( d < 0 )
return -d;
return d;
}
但使用数学库函数fabs()
等总是更好。