Ответ 1
Используйте fabs()
(в math.h), чтобы получить абсолютное значение для double
:
double d1 = fabs(-3.8951);
Я хочу абсолютное значение из отрицательного двойника - и я думал, что функция abs
была такой же простой в использовании, как и в java, но NOT!
Кажется, что abs
-функция возвращает int, потому что у меня есть значение 3.8951, а выход - 3.000000
double d1 = abs(-3.8951);
printf("d1: ...%lf", d1);
Как я могу исправить эту проблему? То есть - я хочу абсолютное значение a double
.
Используйте fabs()
(в math.h), чтобы получить абсолютное значение для double
:
double d1 = fabs(-3.8951);
Используйте fabs
вместо abs
, чтобы найти абсолютное значение типов данных double
(или float
). Включите заголовок <math.h>
для функции fabs
.
double d1 = fabs(-3.8951);
Стоит отметить, что Java может перегружать такой метод, как abs
, чтобы он работал с целым или двойным. В C перегрузка не существует, поэтому вам нужны разные функции для integer или double.
Я обнаружил, что использование cabs(double)
, cabsf(float)
, cabsl(long double)
, __cabsf(float)
, __cabs(double)
, __cabsf(long double)
является решением
//use fabs()
double sum_primary_diagonal=0;
double sum_secondary_diagonal=0;
double difference = fabs(sum_primary_diagonal - sum_secondary_diagonal);