Php乘法错误

时间:2016-04-12 15:48:38

标签: php

我正在尝试将土耳其里拉的价格计算为美元。

它应该像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.

哪里我做错了?

4 个答案:

答案 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); 

会解决它