PHP中的错误简单计算

时间:2014-01-19 12:41:22

标签: php xml math curl

我想用PHP执行一个非常简单的计算,但是,我得到了错误的结果。

我的计算:20.66 * 1.21(=约25),PHP给出:24.20。我将1.21更改为2,这会给40 ...所以PHP告诉我20.66 x 2 = 40。当我回显$resultaat时,它会给出20.66的正确值。 (我从XML文件中获取20.66值)

我在这里和其他地方搜索了“错误的PHP计算”,但未找到类似的错误。有什么想法吗?

我的代码:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://URL'); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, '25');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$content = curl_exec($ch);
curl_close($ch);
$xml = simplexml_load_string($content);
$resultaat = $xml->Balance;
$resultaat2 = $resultaat * 1.21;
$resultaat3 = round($resultaat2, 2);

echo $resultaat3;

2 个答案:

答案 0 :(得分:3)

$ resultaat是一个SimpleXMLElement,不是字符串或数字。似乎该类的类型杂乱返回一个整数值。如果你将类型转换为double,它将起作用。这是一个例子。

<?php

$xml = "<xml><value>20.66</value></xml>";
$xmlObj = simplexml_load_string($xml);
var_dump($xmlObj->value); //shows the type
var_dump($xmlObj->value * 2); // 40
var_dump((double)$xmlObj->value * 2); //41.32

我希望这会有所帮助。

答案 1 :(得分:3)

$ xml-&gt; Balance返回SimpleXmlElement。 把它扔到一个双。改变这一行

$resultaat = $xml->Balance;

到这个

$resultaat = (double)$xml->Balance;