检测负数

我想知道是否有无论如何检测一个数字在PHP中是否定的?

我有以下代码

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

我需要找出是否$ profitloss是一个负面的…如果是我需要回声说,这是。

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

编辑 :我觉得这是太简单的代表答案,所以这里的东西,你也可能会发现有帮助。

在PHP中,我们可以通过使用abs()函数来查找整数的abs() 。 例如,如果我试图找出两个数字之间的差异,我可以这样做:

 $turnover = 10000; $overheads = 12500; $difference = abs($turnover-$overheads); echo "The Difference is ".$difference; 

这会产生The Difference is 2500

我相信这就是你要找的东西:

 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是一个危险的函数,因此只有在确实需要确定一个数字是否定的情况下才使用它。

🙂

 if(x < 0) if(abs(x) != x) if(substr(strval(x), 0, 1) == "-") 

你可以检查$profitloss < 0

 if ($profitloss < 0): echo "Less than 0\n"; endif; 
 if ( $profitloss < 0 ) { echo "negative"; }; 
 ($profitloss < 0) ? echo 'false' : echo 'true'; 

我假设主要想法是find数字是否定的,并以正确的格式显示。

对于那些使用PHP5.3的人可能对使用Number Formatter Class感兴趣 – http://php.net/manual/en/class.numberformatter.php 。 这个function,以及其他有用的东西,可以格式化您的号码。

 $profitLoss = 25000 - 55000; $a= new \NumberFormatter("en-UK", \NumberFormatter::CURRENCY); $a->formatCurrency($profitLoss, 'EUR'); // would display (€30,000.00) 

这里还提到为什么括号用于负数: http : //www.open.edu/openlearn/money-management/introduction-bookkeeping-and-accounting/content-section-1.7

不要误解我的意思,但是你可以这样做;)

 function nagitive_check($value){ if (isset($value)){ if (substr(strval($value), 0, 1) == "-"){ return 'It is negative<br>'; } else { return 'It is not negative!<br>'; } } } 

输出:

 echo nagitive_check(-100); // It is negative echo nagitive_check(200); // It is not negative! echo nagitive_check(200-300); // It is negative 

只需乘以-1,检查结果是否为正值。