Изменение знака числа в PHP?
у меня есть несколько поплавков:
-4.50
+6.25
-8.00
-1.75
Как я могу изменить все это на отрицательные поплавки, чтобы они стали:
-4.50
-6.25
-8.00
-1.75
также мне нужен способ сделать обратное
если поплавок отрицательный, сделайте его положительным.
8 ответов
тривиальная
$num = $num <= 0 ? $num : -$num ;
или, лучшее решение, ИМХО:
$num = -1 * abs($num)
как @ VegardLarsen опубликовал,
явного умножения можно избежать для краткости, но я предпочитаю читаемость над краткостью
Я предлагаю избегать if / else (или эквивалентного троичного оператора), особенно если вам нужно манипулировать рядом элементов (в цикле или с помощью функция Lambda), как это повлияет спектакль.
" если поплавок отрицательный, сделайте его положительным."
для того чтобы изменить знак числа, вы можете просто сделать:
$num = 0 - $num;
или, умножить его на -1, конечно :)
как насчет чего-то тривиального, как:
-
инвертирование:
$num = -$num;
-
преобразование только положительного в отрицательное:
if ($num > 0) $num = -$num;
-
преобразование только отрицательного в положительное:
if ($num < 0) $num = -$num;
повторно редактировать: "также мне нужен способ сделать обратное, если поплавок отрицательный, сделайте его положительным"
$number = -$number;
изменяет число на противоположное.
Я думаю, что ответ Гамбо в порядке. Некоторые люди предпочитают это причудливое выражение, которое делает то же самое:
$int = (($int > 0) ? -$int : $int);
редактировать: по-видимому, вы ищете функцию,которая также сделает отрицательные положительные. Я думаю, что эти ответы самые простые:
/* 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); }
используя решение Альберта и Дана Тао:
отрицательный к положительному и viceversa
$num = $num <= 0 ? abs($num) : -$num ;