在 PHP 中更改数字的符号?

我有几辆花车:

-4.50
+6.25
-8.00
-1.75

我怎样才能把所有这些变成负浮点数,使它们变成:

-4.50
-6.25
-8.00
-1.75

我也需要一种方法来做相反的事情

如果浮点数是负数,那就设置为正数。

152919 次浏览

比如说一些琐碎的事情:

  • 反转:

    $num = -$num;
    
  • converting only positive into negative:

    if ($num > 0) $num = -$num;
    
  • converting only negative into positive:

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

小事一桩

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

或者,更好的解决办法,恕我直言:

$num = -1 * abs($num)

正如@VegardLarsen 所说,

显式乘法可以避免短,但我更喜欢可读性超过短

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

“如果浮动是负值,那就把它变成正值。”

为了改变一个数的符号,你可以简单地做:

$num = 0 - $num;

当然,也可以乘以 -1:)

$float = -abs($float);

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

重新编辑: “我还需要一种方法来做相反的事情,如果浮动是一个负面的,使它成为一个积极的”

$number = -$number;

把数字改成相反的数字。

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


return $number;
}

使用 AlberT 和 Dan Tao 的解决方案:

阴性对阳性,反之亦然

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