我有几个花车:
-4.50
+6.25
-8.00
-1.75
我如何才能将所有这些更改为负浮点数,使它们变为:
-4.50
-6.25
-8.00
-1.75
我也需要一种相反的方法
如果浮点为负,则使其为正。
Answers:
琐碎的
$num = $num <= 0 ? $num : -$num ;
或者,更好的解决方案,恕我直言:
$num = -1 * abs($num)
正如@VegardLarsen所说,
简短可以避免显式乘法,但是我更喜欢可读性而不是简短性
我建议避免使用if / else(或等效的三元运算符),尤其是当您必须操纵多个项目(在循环中或使用lambda函数)时,这会影响性能。
“如果浮动为负数,则使其为正数。”
为了更改数字的符号,您可以简单地执行以下操作:
$num = 0 - $num;
或者,将其乘以-1,当然是:)
$float = -abs($float);
-
走开了。即$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); }
function invertSign($value)
{
return -$value;
}
使用alberT和Dan Tao解决方案:
负面到正面,反之亦然
$num = $num <= 0 ? abs($num) : -$num ;