我有几个花车:
-4.50
+6.25
-8.00
-1.75
如何将所有这些更改为负浮点数,使它们变为:
-4.50
-6.25
-8.00
-1.75
我也需要一种方法来做相反的事情
如果浮点数为负数,则将其设为正数。
一个琐碎的
$num = $num <= 0 ? $num : -$num ;
或者,更好的解决方案,恕我直言:
$num = -1 * abs($num)
正如@VegardLarsen 所发布的,
显式乘法可以避免简短,但我更喜欢可读性而不是简短
我建议避免使用 if/else(或等效的三元运算符),尤其是在您必须操作多个项目(在循环中或使用lambda 函数)时,因为它会影响性能。
“如果浮点数为负数,则将其设为正数。”
要更改数字的符号,您只需执行以下操作:
$num = 0 - $num;
或者,当然是乘以-1 :)
$float = -abs($float);
像这样微不足道的事情怎么样:
反转:
$num = -$num;
仅将正数转换为负数:
if ($num > 0) $num = -$num;
仅将负数转换为正数:
if ($num < 0) $num = -$num;
重新编辑:“我还需要一种方法来做相反的事情如果浮动是负数,让它成为正数”
$number = -$number;
将数字更改为相反的数字。
我认为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); }
function positive_number($number)
{
if ($number < 0) {
$number *= -1;
}
return $number;
}
function invertSign($value)
{
return -$value;
}
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";
?>
使用 aberT 和 Dan Tao 解决方案:
负转正,反之亦然
$num = $num <= 0 ? abs($num) : -$num ;