检测负数

2022-08-30 09:02:09

我想知道是否有任何方法可以检测PHP中的数字是否为负数?

我有以下代码:

$profitloss = $result->date_sold_price - $result->date_bought_price;

我需要找出是否是负面的,如果是,我需要回声说它是。$profitloss


答案 1
if ($profitloss < 0)
{
   echo "The profitloss is negative";
}

编辑:我觉得这对代表来说太简单了,所以这里有一些你可能也会发现有用的东西。

在 PHP 中,我们可以使用函数找到整数的绝对值。例如,如果我试图计算出两个数字之间的差异,我可以这样做:abs()

$turnover = 10000;
$overheads = 12500;

$difference = abs($turnover-$overheads);

echo "The Difference is ".$difference;

这将产生 .The Difference is 2500


答案 2

我相信这就是你一直在寻找的:

class Expression {
    protected $expression;
    protected $result;

    public function __construct($expression) {
        $this->expression = $expression;
    }

    public function evaluate() {
        $this->result = eval("return ".$this->expression.";");
        return $this;
    }

    public function getResult() {
        return $this->result;
    }
}

class NegativeFinder {
    protected $expressionObj;

    public function __construct(Expression $expressionObj) {
        $this->expressionObj = $expressionObj;
    }

    public function isItNegative() {
        $result = $this->expressionObj->evaluate()->getResult();

        if($this->hasMinusSign($result)) {
            return true;
        } else {
            return false;
        }
    }

    protected function hasMinusSign($value) {
        return (substr(strval($value), 0, 1) == "-");
    }
}

用法:

$soldPrice = 1;
$boughtPrice = 2;
$negativeFinderObj = new NegativeFinder(new Expression("$soldPrice - $boughtPrice"));

echo ($negativeFinderObj->isItNegative()) ? "It is negative!" : "It is not negative :(";

但是请注意,eval是一个危险的函数,因此只有在您确实,确实需要找出数字是否为负时才使用它。

:-)


推荐