如何获得数字的符号?

2022-08-30 12:18:26

有没有一种(简单的)方法可以在PHP中获取数字(整数)的“符号”,类似于gmp_sign文档

  • -1 阴性
  • 0 零
  • 1 正面

我记得有某种比较功能可以做到这一点,但我目前无法找到它。

我快速编译了这个(Demo)来完成这项工作,但也许有一些更漂亮的东西(比如单个函数调用?),我想将结果映射到数组上:

$numbers = array(-100, 0, 100);

foreach($numbers as $number)
{
   echo $number, ': ', $number ? abs($number) / $number : 0, "\n";
}

(此代码可能会遇到浮点精度问题)

相关:请求 #19621 数学需要一个“sign()”函数


答案 1

这是一个很酷的单行本,可以高效可靠地为您做到这一点:

function sign($n) {
    return ($n > 0) - ($n < 0);
}

答案 2

在 PHP 7 中,您应该使用组合比较运算符 ():<=>

$sign = $i <=> 0;

推荐