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

Это обычно делает это по умолчанию для Вас, но если это не Вы, должен изучить свойства файла и propset.

58
задан Donald Duck 10 February 2018 в 14:42
поделиться

5 ответов

Тривиальное

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

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

$num = -1 * abs($num)

Как написал @VegardLarsen,

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

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

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

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

$num = 0 - $num;

или, конечно, умножить его на -1 :)

155
ответ дан 24 November 2019 в 18:37
поделиться
$float = -abs($float);
46
ответ дан 24 November 2019 в 18:37
поделиться

Как насчет чего-нибудь тривиального, например:

  • инвертирование:

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

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

     if ($ num <0) $ num = - $ num;
    
30
ответ дан 24 November 2019 в 18:37
поделиться

относительно редактирования: «Также мне нужен способ сделать обратное. Если число с плавающей запятой отрицательное, сделайте его положительным»

$number = -$number;

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

12
ответ дан 24 November 2019 в 18:37
поделиться

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

$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); }
3
ответ дан 24 November 2019 в 18:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: