Изменение знака числа в PHP?
Сэр, у меня быстрый вопрос.
У меня есть несколько поплавков:
-4.50
+6.25
-8.00
-1.75
Как я могу изменить все это на отрицательные поплавки, чтобы они стали:
-4.50
-6.25
-8.00
-1.75
Также мне нужен способ сделать обратный
Если float является отрицательным, сделайте его положительным.
Спасибо
Ответы
Ответ 1
Тривиальный
$num = $num <= 0 ? $num : -$num ;
или, лучшее решение, IMHO:
$num = -1 * abs($num)
EDIT:
явное умножение можно избежать при сокращении, как опубликовал @VegardLarsen, , но я предпочитаю читаемость по поводу коротких:)
EDIT2:
Я предлагаю избегать if/else (или эквивалентного тернарного оператора), особенно если вам нужно манипулировать несколькими элементами (в цикле или с использованием лямбда-функции), так как это повлияет на производительность.
EDIT3:
"Если float является отрицательным, сделайте его положительным."
Чтобы изменить знак числа, вы можете просто:
$num = 0 - $num;
или, разумеется, умножить на -1,)
Ответ 2
$float = -abs($float);
Ответ 3
Как насчет чего-то тривиального типа:
-
инвертирующий:
$num = -$num;
-
преобразование только положительного в отрицательное:
if ($num > 0) $num = -$num;
-
преобразование только отрицательного в положительное:
if ($num < 0) $num = -$num;
Ответ 4
re edit: "Также мне нужен способ сделать обратный Если float является отрицательным, сделайте его положительным"
$number = -$number;
изменяет число на противоположное.
Ответ 5
Я думаю, что ответ Gumbo просто замечательный. Некоторые люди предпочитают это причудливое выражение, которое делает то же самое:
$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); }
Ответ 6
function positive_number($number)
{
if ($number < 0) {
$number *= -1;
}
return $number;
}
Ответ 7
function invertSign($value)
{
return -$value;
}
Ответ 8
с использованием решения alberT и Dan Tao:
отрицательный к положительному и наоборот
$num = $num <= 0 ? abs($num) : -$num ;