我正在尝试将土耳其里拉的价格计算为美元。
它应该像TL * USD一样简单但是我错了计算。
$connect_web = simplexml_load_file('http://www.tcmb.gov.tr/kurlar/today.xml');
$usd_selling = $connect_web->Currency[0]->BanknoteSelling;
echo $usd_selling*2
//It shows 4. But it should be 5.6726, because $usd_selling gives 2.8363 from the xml.
哪里我做错了?
答案 0 :(得分:5)
您始终需要显式转换使用SimpleXML检索的变量,例如
$usd_selling = (float) $connect_web->Currency[0]->BanknoteSelling;
默认情况下,PHP会将其视为SimpleXMLElement对象的字符串值。
答案 1 :(得分:4)
PHP将值视为字符串。您需要将其指定为实/浮点:
echo floatval($usd_selling)*2; //or echo (float)$usd_selling*2;
答案 2 :(得分:2)
使用float
,否则php会将其视为integer
,即:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
$connect_web = simplexml_load_file('http://www.tcmb.gov.tr/kurlar/today.xml');
$usd_selling = (float) $connect_web->Currency[0]->BanknoteSelling;
echo $usd_selling * 2;
//5.6726
答案 3 :(得分:1)
你必须检查你得到了什么:)
$usd_selling
是一个对象。
settype($usd_selling, double);
会解决它