我有一些代码,用于检查我们帐户中的付款金额是否与购买的商品相同。
这是一些“Pseudocode”:
$income = $this->getIncome();
$invoiceSum = $order->getInvoiceSum();
if($income != $invoiceSum ) echo "Error";
,即使值相同,也会给出“错误”输出。
$ income的值来自Rest API(JSON),其中$ invoiceSum由我的代码根据所有订购产品的净值乘以税率计算得出。
如果我这样做:
echo $income . " " . gettype($income) . "<br>";
echo $invoiceSum . " " . gettype($invoiceSum) . "<br>";
我明白了:
19.71 double
19.71 double
这是我的期望。
所以我试着计算为intvalues(= Cent而不是€)。现在奇怪的部分开始了:
echo intval($income * 100);
echo intval($invoiceSum * 100);
我得到:
1970
1971
嗯?如何解决这个问题,所以我得到了正确的值?
答案 0 :(得分:0)
从here,要获得所需的输出,您可能必须这样做
var_dump( (int)($income * 100) );
var_dump( (int)($invoiceSum * 100) );