Подтвердить что ты не робот

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

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

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

-4.50
+6.25
-8.00
-1.75

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

-4.50
-6.25
-8.00
-1.75

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

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

Спасибо

4b9b3361

Ответ 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 ;