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

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

  • автор:

 

Сделать положительное число

Потребовалось перевести из отрицательной переменной в положительную. Как это сделать в python?

tohatsu's user avatar

Вступление

Дальнейшие примеры будут выглядеть таким образом:

Как перевернуть знак?

В python, чтобы поменять знак какого-либо числа в переменной num , надо записать -num :

Как сделать положительное число?

Быстрый способ

Чтобы перевести любое число в ранг положительных, нужно написать abs(num) :

Почему этот способ самый быстрый?

Этот способ самый быстрый, т.к. здесь используется встроенная функция, написанная на быстром Си, и она будет быстрее любого другого способа с использованием других встроенных функций.

Математический способ

Это более медленный и длинный в написании способ. Для этой задачи не рекомендую его использовать.
Записать можно по-разному, но я приведу два различных способа:

Как это работает?

Чтобы получить модуль числа (то же число, только всегда положительное) число надо возвести в квадрат и извлечь квадратный корень.
В питоне можно по-разному записать эти операции, один способ — ** (возведение в степень), другой — воспользоваться встроенной библиотекой math .
Возведение в 2 степень — возведение в квадрат, а в 0.5 — эквивалентно извлечению квадратного корня.
Также для возведения в степень можно использовать функцию math.pow , а для извлечения квадратного корня — math.sqrt .

Вывод

Наш выбор для создания положительного числа — использовать функцию abs !
Соединяя инверсию знака с созданием положительного числа мы получаем следующее:

Чтобы перевести любое число num в ранг отрицательных, надо записать -abs(num)

Ремарки

Для простоты понимания я опустил деталь, что при использования математического способа результат — float , а не int , и при выводе .0 добавляется к числу.

Изменить отрицательное число на положительное в Excel (удалить отрицательный знак)

Большинство людей, работающих с электронными таблицами Excel, имеют дело с числами в больших / малых наборах данных.

И когда вы работаете с числами, у вас будут все их типы (положительные, отрицательные, десятичные, дата / время).

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

И, наверное, самый распространенный — когда вам нужно заменить отрицательные числа на положительные (убрать отрицательный знак) для некоторых расчетов.

И снова в Excel есть несколько способов сделать это.

В этом уроке я покажу вам несколько простых способов изменить отрицательные числа на положительные в Excel (используя формулы, технику копирования и вставки и другие замечательные методы).

Так что, если вам интересно, продолжайте читать!

Умножьте на минус 1, чтобы преобразовать отрицательное число в положительное

Если у вас есть столбец, полный чисел, и вы хотите быстро получить числа, в которых отрицательные значения были преобразованы в положительные, вы можете легко сделать это, умножив эти отрицательные значения на -1.

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

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

Ниже приведена формула, которая преобразует отрицательные числа в положительные, а остальные оставит без изменений:
= ЕСЛИ (A2> 0; A2; -A2)

Вышеупомянутая формула использует функцию ЕСЛИ, чтобы сначала проверить, является ли число положительным или нет. Если он положительный, знак не меняется, а если отрицательный, к ссылке добавляется отрицательный знак, что дает нам только положительное число.

Если у вас также есть текстовые значения в наборе данных, эта функция будет игнорировать это (и будут изменены только отрицательные значения)

Теперь, когда у вас есть требуемый результат, вы можете преобразовать эти формулы в значения (и скопировать их поверх исходных данных, если они вам не нужны).

Используйте функцию ABS, чтобы изменить все отрицательные числа на положительные

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

Функция ABS

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

Ниже приведена формула, которая сделает это:
= АБС (A2)

Вышеупомянутая функция ABS не влияет на положительные числа, но преобразует отрицательные числа в положительные.

Теперь, когда у вас есть требуемый результат, вы можете преобразовать эти формулы в значения (и скопировать их поверх исходных данных, если они вам не нужны).

Одним из незначительных недостатков функции ABS является то, что она может работать только с числами. Если у вас есть текстовые данные в некоторых ячейках и вы используете функцию ABS, она даст вам #VALUE! ошибка.

Умножьте с помощью специальной вставки, чтобы перевернуть знак

Если вы хотите изменить знак числа (т. Е. Изменить отрицательный на положительный и положительный на отрицательный), вы также можете использовать эту специальную технику умножения вставки.

Предположим, у вас есть набор данных, показанный ниже, и вы хотите перевернуть знак.

Ниже приведены инструкции по изменению знака с помощью специальной вставки:

  1. В любой пустой ячейке на листе введите -1.
  2. Скопируйте эту ячейку (со значением -1)
  3. Выберите диапазон, в котором вы хотите перевернуть знак.
  4. Щелкните правой кнопкой мыши любую из выбранных ячеек
  5. Щелкните Специальная вставка. Откроется диалоговое окно Специальная вставка.
  6. В разделе «Вставить» выберите «Значения».
  7. В параметрах операции выберите «Умножить».
  8. Нажмите ОК
  9. Удалить -1 из ячейки

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

Но что, если вы хотите преобразовать только отрицательные числа в положительные, а не наоборот?

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

Вот как выбрать в Excel только отрицательные числа

  1. Выбрать весь набор данных
  2. Удерживая клавишу Ctrl, нажмите клавишу F. Откроется диалоговое окно «Найти и заменить».
  3. В поле «Найти» введите — (знак минус)
  4. Нажмите «Найти все«
  5. Удерживая контрольную клавишу, нажмите клавишу A.

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

Этот метод имеет два преимущества по сравнению с методом формул (два метода, описанные до этого):

  1. Вам не нужно добавлять дополнительный столбец, а затем использовать формулу для получения результата в этом столбце. Вы можете использовать это в существующем наборе данных.
  2. Вам не нужно преобразовывать формулы в значения (поскольку результат, который вы получаете, уже является значением, а не формулой)

Мигающая заливка для удаления отрицательного знака

Flash Fill — это новая функция, представленная в Excel 2013. Это позволяет вам быстро идентифицировать закономерности, а затем дать вам результат, в котором шаблон был применен ко всему набору данных.

Это можно использовать, когда у вас есть имена, и вы хотите разделить имя и фамилию. Как только вы несколько раз наберете имя в соседней ячейке, Flash Fill определит шаблон и выдаст вам все имена.

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

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

Ниже приведены шаги по замене отрицательных чисел на положительные с помощью Flash Fill:

  1. В поле рядом с таблицей с данными введите ожидаемый результат вручную. В этом примере я вручную введу 874
  2. В ячейке под ним введите ожидаемый результат (162 в этом примере).
  3. Выберите обе ячейки
  4. Поместите курсор в нижнюю правую часть выделения. Он изменится на значок плюса
  5. Щелкните и перетащите, чтобы заполнить столбец (или дважды щелкните)
  6. Щелкните значок Параметры автозаполнения.
  7. Нажмите на Flash Fill.

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

При использовании этого метода вам нужно помнить, что Excel полагается на угадывание шаблона. Так что вам придется хотя бы показать Excel, что вы конвертируете отрицательное число в положительное.

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

Преобразование отрицательных чисел в положительные одним щелчком мыши (VBA)

И, наконец, вы также можете использовать VBA для преобразования отрицательных значений в положительные.

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

В таком случае вы можете создать и сохранить код макроса VBA в личной книге макросов и поместить VBA на панель быстрого доступа. Таким образом, в следующий раз, когда вы получите набор данных, в котором вам нужно это сделать, вы просто выберите данные и щелкните значок в QAT…

… И все будет готово!

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

Ниже приведен код VBA, который преобразует отрицательные значения в положительные значения в выбранном диапазоне:
Sub ChangeNegativetoPOsitive () для каждой выделенной ячейки, если Cell.Value <0, то Cell.Value = -Cell.Value End, если следующая ячейка End Sub

В приведенном выше коде используется цикл For Next для просмотра каждой выделенной ячейки. Он использует оператор IF, чтобы проверить, является ли значение ячейки отрицательным или нет. Если значение отрицательное, знак меняется на обратный, если нет, он игнорируется.

Вы можете добавить этот код в обычный модуль в книге (если вы хотите использовать его только в этой книге). И если вы хотите использовать этот код макроса в любой книге в вашей системе, вы можете сохранить его в личной книге макросов.

Вот шаги, чтобы получить личную книгу макросов (PMW).

Вот шаги, чтобы сохранить этот код в PMW.

Теперь позвольте мне показать вам, как добавить этот код на панель быстрого доступа (шаги одинаковы, независимо от того, сохраняете ли вы этот код в отдельной книге или в PMW)

  1. Откройте книгу, в которой у вас есть данные
  2. Добавьте код VBA в книгу (или в PMW)
  3. Нажмите на опцию «Настроить панель быстрого доступа» в QAT.
  4. Нажмите «Дополнительные команды».
  5. В диалоговом окне «Параметры Excel» нажмите раскрывающийся список «Выбрать команды из».
  6. Щелкните Макросы. Это покажет вам все макросы в книге (или в личной книге макросов).
  7. Нажмите кнопку «Добавить».
  8. Нажмите ОК.

Преобразовать отрицательное число в положительное в JavaScript

Есть ли в JavaScript математическая функция, которая преобразует числа в положительные значения?

16 ответов

Вы могли бы использовать это .

Отрицательный к положительному

От положительного к отрицательному

Как насчет x *= -1 ? Мне нравится его простота.

Если вы хотите, чтобы число всегда было положительным, независимо от того, что вы можете сделать это.

 

Вы также можете попробовать это, но я не рекомендую это:

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

Я проверил это в php, и первая функция работает быстрее, но иногда JS делает некоторые безумные вещи, поэтому я не могу сказать наверняка.

Мой минимальный подход

Для преобразования отрицательного числа в положительное и наоборот

Знак минус (-) может преобразовывать положительные числа в отрицательные числа и отрицательные числа в положительные числа. x=-y — визуальный сахар для x=(y*-1) .

Я считаю, что это решение легко понять.

Я знаю другой способ сделать это. Эта техника работает с негативного на позитивное и наоборот

Наоборот:

ЖИВОЙ КОД:

Если вы хотите написать интересный код, который никто другой не сможет обновить, попробуйте это:

Math.abs(x) или если вы уверены , значение будет отрицательным, прежде чем преобразование просто добавит обычный знак минуса: x = -x .

Я знаю, что это немного поздно, но для людей, борющихся с этим, вы можете использовать

Для преобразования негатива в позитив

Для преобразования положительного в отрицательный

Или вы можете просто сделать этот короткий метод.

Для преобразования положительного в отрицательный и наоборот

Для функционального программирования у Рамды есть хороший метод для этого. Тот же метод работает, переходя от положительного к отрицательному и наоборот.

Я сделал что-то подобное сам.

Он проверяет, является ли число отрицательным, и если это так, умножьте на -1. Это вернет значение, оно зависит от вас, если вы его захватите. Если вы хотите назначить что-то, вы должны сделать что-то вроде:

Но это действительно зависит от вашей цели. Для меня это было просто, сделать его положительным, если отрицательным, иначе ничего не делать. Следовательно, » в коде. В этом случае я использовал третичный оператор, потому что хотел, вполне может быть:

Я видел побитовое решение здесь и хотел прокомментировать это тоже.

Это решение очень на мой взгляд, мы могли бы переписать его так:

Проще говоря, мы берем отрицательное число, убираем одно из него и затем поразрядно инвертируем его. Если бы мы поразрядно инвертировали его, мы бы получили значение 1 слишком маленьким. Вы также можете сделать это:

Это будет делать то же самое, но сначала будет инвертировать, а затем добавить 1 к положительному числу. Хотя вы не можете сделать это:

Это не будет работать из-за приоритета, postfix операторы, такие как num++ , будут оцениваться до

, а префикс причины ++num не будет работать, даже если он имеет тот же приоритет, что и побитовый NOT (

), потому что он вычисляется справа налево. Я пытался поменять их местами, но кажется, что префикс немного привередливый по сравнению с побитовым НЕ. +1 будет работать, потому что «+» имеет более высокий приоритет и будет оцениваться позже.

Я нашел это решение довольно забавным и решил расширить его, так как оно было просто добавлено, и люди, которые смотрят на него, вероятно, игнорировали его. Хотя да, он не будет работать с поплавками.

Я надеюсь, что этот пост не отошел от первоначального вопроса. : /

Умножение на (-1) — самый быстрый способ преобразования отрицательного числа в положительное. Но вы должны быть осторожны, чтобы не преобразовать мою ошибку положительного числа в отрицательное! Так что дополнительная проверка нужна .

Тогда Math.abs, Math.floor и parseInt самый медленный.

enter image description here

Вы можете использовать оператор

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

Преобразовать отрицательное число в положительное в JavaScript

Есть ли математическая функция в JavaScript, которая преобразует числа в положительное значение?

15 ответов

Вы могли бы использовать это.

x + 1. Это довольно быстро, но не ясно, что он делает. Подчеркнул это, чтобы показать разницу: jsperf.com/absolute-int

x+1 === 100 но var x = 100;

x+1 === -100 . Math.abs всегда делает его положительным, в то время как дополнение к ним просто инвертирует знак.

Как насчет x *= -1 ? Мне нравится его простота.

Math.abs(x) , или если вы определенные, значение будет отрицательным до того, как преобразование просто добавит обычный знак минуса: x = -x .

Знак минус (-) может преобразовывать положительные числа в отрицательные числа и отрицательные числа в положительные числа. x=-y — визуальный сахар для x=(y*-1) .

Я нахожу это решение понятным.

Если вы хотите написать интересный код, который никто еще не сможет обновить, попробуйте следующее:

конвертирует число в 32-битное целое число. Если у вас есть поплавок в качестве входных данных, он будет скрыт.

Я знаю, что это немного поздно, но для людей, борющихся с этим, вы можете использовать

Преобразование отрицательного в положительное

Для преобразования положительного в отрицательное

Или вы могли бы просто сделать этот короткий метод.

Для преобразования положительных в отрицательные и наоборот

Отрицательный к положительному

От положительного к отрицательному

Умножение на (-1) — самый быстрый способ преобразования отрицательного числа в положительное. Но вы должны быть осторожны, чтобы не преобразовать мою ошибку положительного числа в отрицательное! Так что дополнительная проверка необходима.

Тогда Math.abs, Math.floor и parseInt самый медленный.

Изображение 108364

Мой минимальный подход

Для преобразования отрицательного числа в положительное и наоборот

Я сделал что-то подобное сам.

Он проверяет, является ли число отрицательным, а если оно есть, умножьте с -1 Это возвращает значение, оно зависит от вас, если вы его захватите. Если вы хотите что-то присвоить, вы должны, вероятно, сделать что-то вроде:

Но это действительно зависит от вашей цели. Для меня это было просто, сделать его положительным, если отрицательным, иначе ничего не делать. Отсюда и «код». В этом случае я использовал третичный оператор, которого я хотел, вполне может быть:

Я видел побитовое решение здесь и хотел прокомментировать его тоже.

Эта душа очень модно, по моему мнению, мы могли бы переписать ее так:

В простых терминах мы берем отрицательное число, отбираем его и затем побиваем его инвертируем. Если бы мы поразрядно перевернули его, мы бы получили значение 1 слишком мало. Вы также можете сделать это:

Это сделает то же самое, но сначала инвертирует, а затем добавит 1 к положительному числу. Хотя вы не можете сделать это:

Это не будет работать из-за precedence, операторы постфикса, такие как num++ , будут оцениваться до

и префикс причины ++num не работает, даже если он имеет тот же приоритет, что и побитовое NOT (

), потому что он оценивается справа налево. Я попытался поменять их, но кажется, что префикс немного по сравнению с побитовым NOT. +1 будет работать, потому что «+» имеет более высокий приоритет и будет оценен позже.

Я нашел это решение довольно забавным и решил расширить его, поскольку он был просто брошен туда, и публика, смотрящая на него, вероятно, игнорировала его. Хотя да, он не будет работать с поплавками.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *