PHP:奇怪的类型转换和舍入

时间:2017-10-16 08:57:49

标签: php

我有一些代码,用于检查我们帐户中的付款金额是否与购买的商品相同。

这是一些“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

嗯?如何解决这个问题,所以我得到了正确的值?

1 个答案:

答案 0 :(得分:0)

here,要获得所需的输出,您可能必须这样做

var_dump( (int)($income * 100) );
var_dump( (int)($invoiceSum * 100) );