在PHP中更改数字的符号?

时间:2009-09-17 10:57:58

标签: php math numbers sign

我有一些花车:

-4.50
+6.25
-8.00
-1.75

如何将所有这些更改为负浮动,以便它们变为:

-4.50
-6.25
-8.00
-1.75

我还需要一种方法来做反向

如果浮点数为负数,则为正数。

9 个答案:

答案 0 :(得分:141)

琐碎的

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

或更好的解决方案,恕我直言:

$num = -1 * abs($num)

正如@VegardLarsen发布的那样,

  

为了简洁,可以避免显式乘法,但我更喜欢可读性而非短缺

我建议避免使用if / else(或等效的三元运算符),特别是如果你必须操作一些项目(在循环中或使用 lambda函数),因为它会影响性能。

  

“如果浮动是负数,请将其设为正数。”

要更改数字的符号,您可以执行以下操作:

$num = 0 - $num;

或者,将它乘以-1,当然:)

答案 1 :(得分:46)

$float = -abs($float);

答案 2 :(得分:28)

如何做一些微不足道的事情:

  • 反相:

    $num = -$num;
    
  • 只将正面转换为负数:

    if ($num > 0) $num = -$num;
    
  • 仅将消极转换为正面:

    if ($num < 0) $num = -$num;
    

答案 3 :(得分:12)

重新编辑:“我还需要一种方法来做反向如果浮点数是负数,那就让它成为正数”

$number = -$number;

将数字更改为相反的数字。

答案 4 :(得分:3)

我认为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); }

答案 5 :(得分:2)

function positive_number($number)
{
    if ($number < 0) {
        $number *= -1;
    }

   return $number;
}

答案 6 :(得分:0)

function invertSign($value)
{
    return -$value;
}

答案 7 :(得分:0)

gmp_neg — 取反数

是自第 4 版以来的 PHP 函数,它允许您在 GMP PHP API 下否定一个数字。您可以在此处了解更多信息https://www.php.net/manual/en/ref.gmp.php

<?php
$neg1 = gmp_neg("1");
echo gmp_strval($neg1) . "\n";
$neg2 = gmp_neg("-1");
echo gmp_strval($neg2) . "\n";
?>

答案 8 :(得分:-2)

使用alberT和Dan Tao解决方案:

消极到积极,反之亦然

$num = $num <= 0 ? abs($num) : -$num ;