Подтвердить что ты не робот

Как получить абсолютное значение с двух-с-языка

Я хочу абсолютное значение из отрицательного двойника - и я думал, что функция abs была такой же простой в использовании, как и в java, но NOT!

Кажется, что abs -функция возвращает int, потому что у меня есть значение 3.8951, а выход - 3.000000

double d1 = abs(-3.8951);
printf("d1: ...%lf", d1);

Как я могу исправить эту проблему? То есть - я хочу абсолютное значение a double.

4b9b3361

Ответ 1

Используйте fabs()math.h), чтобы получить абсолютное значение для double:

double d1 = fabs(-3.8951);

Ответ 2

Используйте fabs вместо abs, чтобы найти абсолютное значение типов данных double (или float). Включите заголовок <math.h> для функции fabs.

double d1 = fabs(-3.8951);

Ответ 3

Стоит отметить, что Java может перегружать такой метод, как abs, чтобы он работал с целым или двойным. В C перегрузка не существует, поэтому вам нужны разные функции для integer или double.

Ответ 4

Я обнаружил, что использование cabs(double), cabsf(float), cabsl(long double), __cabsf(float), __cabs(double), __cabsf(long double) является решением

Ответ 5

  //use fabs()
  double sum_primary_diagonal=0;
  double sum_secondary_diagonal=0;
  double difference = fabs(sum_primary_diagonal - sum_secondary_diagonal);