Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中错误的简单计算_Php_Xml_Math_Curl - Fatal编程技术网

PHP中错误的简单计算

PHP中错误的简单计算,php,xml,math,curl,Php,Xml,Math,Curl,我想用PHP执行一个非常简单的计算,但是,我得到了错误的结果 我的计算:20.66*1.21(=大约25),PHP给出:24.20。我将1.21更改为2,这将给出40。。。所以PHP告诉我20.66x2=40。当我只回显$resultaat时,它给出了正确的20.66值。(我从XML文件中获取20.66值) 我在这里和其他地方搜索了“错误的PHP计算”,但没有找到类似的错误。有什么想法吗 我的代码: $ch = curl_init(); curl_setopt($ch, CURLOPT_URL

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

我的计算:
20.66*1.21
(=大约25),PHP给出:
24.20
。我将
1.21
更改为
2
,这将给出
40
。。。所以PHP告诉我
20.66x2=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;

$ResultAt是SimpleXMLElement,不是字符串或数字。该类的类型杂耍似乎返回一个整数值。如果您将类型强制转换为双倍,它将起作用。这里有一个例子

<?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

$ResultAt是SimpleXMLElement,不是字符串或数字。该类的类型杂耍似乎返回一个整数值。如果您将类型强制转换为双倍,它将起作用。这里有一个例子

<?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

$xml->Balance返回一个simplexmlement。
把它掷成双人。换行

$resultaat = $xml->Balance;
对此

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

$xml->Balance返回一个simplexmlement。 把它掷成双人。换行

$resultaat = $xml->Balance;
对此

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

你能给我们看看
var\u dump($resultaat)?24.20/1.21=20,准确地说。我建议您从XML文件中读取的值是20,而不是您认为的20.66。您可能遇到与中相同的SimpleXML问题,其中包含浮点值的SimpleXML对象通过计算自动转换为
int
。也许可以尝试
$resultaat=(float)$xml->Balance
而不是将SimpleXML对象分配给
$resultaat
.var\u dump($resultaat);-->object(simplexmlement)#7(1){[0]=>string(5)“20.66”}@MattGibson在评论中给出了正确答案,
$resultaat=(float)$xml->Balance
而不是
$resultaat=$xml->Balance正在工作。我现在没有时间做出正确的回答!请随意接受任何给出正确答案的人:)你能给我们看一下
var\u dump($resultaat)?24.20/1.21=20,准确地说。我建议您从XML文件中读取的值是20,而不是您认为的20.66。您可能遇到与中相同的SimpleXML问题,其中包含浮点值的SimpleXML对象通过计算自动转换为
int
。也许可以尝试
$resultaat=(float)$xml->Balance
而不是将SimpleXML对象分配给
$resultaat
.var\u dump($resultaat);-->object(simplexmlement)#7(1){[0]=>string(5)“20.66”}@MattGibson在评论中给出了正确答案,
$resultaat=(float)$xml->Balance
而不是
$resultaat=$xml->Balance正在工作。我现在没有时间做出正确的回答!请随意接受其他给出正确答案的人:)关于那个问题的更多信息关于那个问题的更多信息