Сэр, у меня быстрый вопрос.
У меня есть несколько поплавков:
-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 ;