Intereting Posts
Предупреждение: PDOStatement :: bindValue (): SQLSTATE : Недопустимый номер параметра: Столбцы / Параметры основаны на 1 Сохранение и отображение HTML и специальных символов в базе данных mysql безопасно? php zip включает только новые файлы Можно ли прогнозировать rand (0,10) в PHP? Howto цепочки объектов в PHP5: $ this-> foo-> bar-> baz () Условное расширение в клинке Текст центра на изображении с помощью PHP GD Yii2: проверить наличие модели ActiveRecord в базе данных Laravel получает выбранное значение из формы :: Select Сохраняйте значение переключателя пользовательского поля в корзине и отобразите его на странице корзины. Добавьте символ FNC1 в код, созданный с помощью tcpdf datamatrix Обновление долговременной стороны доступа к токен-серверу лучший трюк при использовании расширяемого класса (PHP) Drupal 7 переопределяет jquery js-файл в пользовательской теме Цель обучения C (Cocoa) для программирования iPhone, поступающего из веб-разработки?

Изменение знака числа в PHP?

Сэр, у меня быстрый вопрос.

У меня есть несколько поплавков:

-4.50 +6.25 -8.00 -1.75 

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

 -4.50 -6.25 -8.00 -1.75 

Также мне нужен способ сделать обратный

Если float является отрицательным, сделайте его положительным.

благодаря

Тривиальный

 $num = $num <= 0 ? $num : -$num ; 

или, лучшее решение, ИМХО:

 $num = -1 * abs($num) 

РЕДАКТИРОВАТЬ:

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

EDIT2:

Я предлагаю избегать if / else (или эквивалентного троичного оператора), особенно если вам нужно манипулировать несколькими элементами (в цикле или с использованием лямбда-функции ), так как это повлияет на производительность.

EDIT3:

«Если поплавок является отрицательным, сделайте его положительным».

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

 $num = 0 - $num; 

или, разумеется, умножить на -1. 🙂

 $float = -abs($float); 

Как насчет чего-то тривиального, как:

  • инвертирующий:

     $num = -$num; 
  • преобразование только положительного в отрицательное:

     if ($num > 0) $num = -$num; 
  • преобразование только отрицательного в положительное:

     if ($num < 0) $num = -$num; 

re edit: «Также мне нужен способ сделать обратный Если float является отрицательным, сделайте его положительным»,

 $number = -$number; 

меняет число на противоположное.

Я думаю, что ответ Гумбо в порядке. Некоторые люди предпочитают это причудливое выражение, которое делает то же самое:

 $int = (($int > 0) ? -$int : $int); 

EDIT : По-видимому, вы ищете функцию, которая сделает негативы положительными. Я думаю, что эти ответы самые простые:

 /* I am not proposing you actually use functions called "makeNegative" and "makePositive"; I am just presenting the most direct solution in the form of two clearly named functions. */ function makeNegative($num) { return -abs($num); } function makePositive($num) { return abs($num); } 
 function positive_number($number) { if ($number < 0) { $number *= -1; } return $number; } 
 function invertSign($value) { return -$value; } 

используя решение alberT и Dan Tao:

от отрицательного до положительного и наоборот

 $num = $num <= 0 ? abs($num) : -$num ;