php意外转换为int



我有以下代码摘录

$sgn=$creditInvoice ? 1.0 : -1.0;
$net=$sgn*$s->totalNetValue;$vat=$sgn*$s->totalVatAmount;
echo "net=$net vat=$vat s->totalNetValue=$s->totalNetValue s->totalVatAmount=$s->totalVatAmount gettype(s->totalNetValue)=".gettype($s->totalNetValue)."<br>";

输出出乎意料地(对我来说(

net=-28 vat=-6 s->totalNetValue=28.32秒->总VatAmount=6.80gettype(s->totalNetValue(=对象

simplexml_load_string已经读取了数据,所以它必须这样做。如果将$s->totalNetValue浮动或加倍,它可以正常工作。我该怎么写";正确但不冗余的代码"?

Bellow完整的代码复制:

<?php
$x='<?xml version="1.0" encoding="utf-8"?> <invoice> <invoiceSummary> <totalNetValue>20.12</totalNetValue> <totalVatAmount>4.83</totalVatAmount> </invoiceSummary> </invoice>';
$i = simplexml_load_string($x);
print_r($i);echo '<br>';
$s = $i->invoiceSummary;
print_r($s);echo '<br>';
$net=1.0*$s->totalNetValue;
$vat=1.0*$s->totalVatAmount;
echo "net=$net vat=$vat s->totalNetValue=$s->totalNetValue s->totalVatAmount=$s->totalVatAmount gettype(s->totalNetValue)=".gettype($s->totalNetValue)."<br>";
?>

好吧,咖啡终于开始了,我看到了其他人看到的。

在PHP7.3之前,当在数学上下文中使用SimpleXML对象时,它们总是被视为int。此更改记录在此处。

你可以看到这里的旧方法和这里的新方法

最新更新