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>"; } ?> 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 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. 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
Archived
This topic is now archived and is closed to further replies.