Strogg wrote:

This the script that is falling over.....
It calculates everything correct until the amount reaches £1,000, and then
it falls over and reads only the 1 before the comma, and then outputs the
price to be paid as £1.18 (£1 + the taxrate (0.175 rounded up))

<?
  echo "<p>Order Processed at ";
  echo date("H:i, jS F");
  echo "<br>";
  echo "<p>You ordered:";
  echo "<br>";
  echo $tyreqty." Tyres<br>";
  echo $oilqty." Bottles of Oil<br>";
  echo $sparkqty." Spark Plugs";
  $totalqty = 0;
  $totalamount = 0.00;
  define("TYREPRICE", 100);
  define("OILPRICE", 10);
  define("SPARKPRICE", 5);
  $totalqty = $tyreqty + $oilqty + $sparkqty;
  $totalamount = $tyreqty * TYREPRICE
                 + $oilqty * OILPRICE
     + $sparkqty * SPARKPRICE;
  $totalamount = number_format($totalamount, 2);
  echo "<br>\n";
  echo "Items Ordered:     ".$totalqty."<br>\n";
  echo "Subtotal:          £".$totalamount."<br>\n";
  $taxrate = 0.175;  //local tax rate in UK is 17.5%
  $totalamount = $totalamount * (1 + $taxrate);
  $totalamount = number_format($totalamount, 2);
  echo "Total Including Tax:  £".$totalamount."<br>\n";
?>





---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.655 / Virus Database: 420 - Release Date: 08/04/2004

Here's your problem:


$totalamount = number_format($totalamount, 2);

That creates a string with a comma in it. When you try to read it as a number again, the comma screws it up. Wait to do the number_format until you output like this:

echo "Subtotal:          £".number_format($totalamount, 2)."<br>\n";
...
echo "Total Including Tax:  £".number_format($totalamount, 2)."<br>\n";

In other words, instead of assigning the number formatted string back to $totalamount, format it only on output.

--
paperCrane <Justin Patrin>

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to