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

Как сделать отрицательные числа положительными

Я имею отрицательное число с плавающей запятой как:

a = -0.340515;

чтобы преобразовать это в положительное число, я использовал метод abs() как:

a = abs(a);

результат a = 0.000000;

Но мне нужен результат как 0.340515.

Может ли кто-нибудь сказать мне, как это сделать.

4b9b3361

Ответ 1

abs() предназначен только для целых чисел. Для плавающей запятой используйте fabs() (или одну из строк fabs() с правильной точностью для того, что на самом деле есть)

Ответ 2

Вы должны использовать:

abs() для int
fabs() для double
fabsf() для float

Вышеуказанная функция также будет работать, но вы также можете попробовать что-то вроде этого.

    if(a<0)
    {
         a=-a;
    }

Ответ 3

Используйте float fabsf (float n) для float значений.

Используйте double fabs (double n) для значений double.

Используйте long double fabsl(long double) для long double значений.

Используйте abs(int) для int значений.

Ответ 4

Как указано выше, вам придется использовать определенный вариант abs() на основе интегрального типа.

Однако я бы определил макрос вроде:

#define POSITIVE(n) ((n) < 0 ? 0 - (n) : (n))

чтобы я мог передавать любое значение, особенно если не уверен в знаке и всегда получаю положительный результат.

Ответ 5

a *= (-1);

задача решена. Если есть решение проблемы меньшего размера, то почему вы, ребята, идете к сложному решению. Пожалуйста, дайте людям указание использовать базовую логику, потому что тогда только люди могут тренировать свою логику программирования.

Ответ 6

Ну, в математике, чтобы преобразовать отрицательное число положительного числа нужно просто многократное отрицательное число по -1;

Тогда ваше решение может быть таким:

a = a * -1;

или короче:

a *= -1;

Ответ 7

Почему вы хотите использовать странные жесткие команды, когда можете использовать:

if(a < 0)
    a -= 2a;

Оператор if, очевидно, применяется только тогда, когда вы не уверены, будет ли число положительным или отрицательным.

В противном случае вам придется использовать этот код:

a = abs(a) // a is an integer
a = fabs(a) // a is declared as a double
a = fabsf(a) // a is declared as a float (C++ 11 is able to use fabs(a) for floats instead of fabs)

Чтобы активировать С++ 11 (если вы используете Code:: Blocks, вам необходимо:

  • Открыть код:: Блоки (рекомендуемая версия: 13.12).
  • Перейдите в Настройки → Компилятор.
  • Убедитесь, что компилятор, который вы используете, является компилятором GNU GCC.
  • Нажмите "Параметры компилятора", и внутри открытой вкладки щелкните флажки "Компилятор"
  • Прокрутите страницу вниз до тех пор, пока не найдете: g++ следуйте стандарту языка С++ 11 ISO С++ [-std = С++ 11]. Проверьте это, а затем нажмите кнопку OK.
  • Перезагрузите код:: Блоки, и тогда вам хорошо идти!

После выполнения этих шагов вы сможете использовать fabs (a) для float вместо fabsf (a), который использовался только для C99 или меньше! (Даже С++ 98 может позволить вам использовать fabs вместо fabsf: P)