trapez Posted May 21, 2011 Share Posted May 21, 2011 When totaling up the <total> from XML the decimal is dropped off completely, im totally clueless and new to PHP. Below is cut down sample that shows the decimal missing ONLY when i attempt to add the number (sample-3 & sample-4), but moving the XML <total> to another field retains the decimal (sample-2). Can someone shed some light on this?? thanks <?php $xml = ' <invoice-headers> <invoice-lines> <invoice-line> <total type="decimal">5002.99</total> </invoice-line> </invoice-lines> </invoice-headers> '; $tltamt = 0.00; $total = 0.00; $Invoices = new SimpleXMLElement($xml); foreach ($Invoices->{'invoice-lines'}->{'invoice-line'} as $invoiceline) { $tltsave = $invoiceline->total; $tltamt += $tltsave; $total=number_format($tltsave + $total, 2); echo "sample-1: " . $invoiceline->total."<br>"; echo "sample-2: " . $tltsave."<br>"; echo "sample-3: " . $tltamt ."<br>"; echo "sample-4: " . $total ."<br>"; } ?> Quote Link to comment https://forums.phpfreaks.com/topic/237051-missing-decimal-when-totaling-from-xml/ Share on other sites More sharing options...
sasa Posted May 23, 2011 Share Posted May 23, 2011 try to explicite convert value to float type change line $tltsave = $invoiceline->total to $tltsave = (float)$invoiceline->total Quote Link to comment https://forums.phpfreaks.com/topic/237051-missing-decimal-when-totaling-from-xml/#findComment-1218929 Share on other sites More sharing options...
trapez Posted May 24, 2011 Author Share Posted May 24, 2011 Thanks sasa! From what I read, $invoiceline->totalis is an object and requires like you said a float. I would have a similar problem comparing as a string I would have to cast as a string then do the compare. Quote Link to comment https://forums.phpfreaks.com/topic/237051-missing-decimal-when-totaling-from-xml/#findComment-1219345 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.