在PHP中更改数字的符号?

干草家伙,我有一个快速的问题。

我有几个花车:

-4.50 +6.25 -8.00 -1.75 

我怎样才能把所有这些变成负的花车,使他们变成:

 -4.50 -6.25 -8.00 -1.75 

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

如果浮动是一个负面的,使其为正。

谢谢

一个微不足道的

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

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

 $num = -1 * abs($num) 

编辑:

明显的乘法可以避免简短,如@VegardLarsen张贴, 但我更喜欢可读性比短小:)

EDIT2:

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

EDIT3:

“如果浮动是负面的,使其为正面。”

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

 $num = 0 - $num; 

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

 $float = -abs($float); 

如此琐碎的事情如何:

  • 反相:

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

     if ($num > 0) $num = -$num; 
  • 只将负值转换为正值:

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

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

 $number = -$number; 

把数字改成相反。

我认为Gumbo的答案很好。 有些人喜欢这个奇特的expression,做同样的事情:

 $int = (($int > 0) ? -$int : $int); 

编辑 :显然你正在寻找一个function,将负面积极以及。 我认为这些答案是最简单的:

 /* 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; } 

采用alberT和丹涛解决scheme:

负面的正面和反面

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