#22240 [Fbk->Opn]: number_format problem with numbers > 999
| From: | shadlej at iwakuni dot usmc dot mil | Date: | Tue, 18 Feb 2003 11:27:36 +0000 |
| Subject: | #22240 [Fbk->Opn]: number_format problem with numbers > 999 | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-33401@lists.php.net to get a copy of this message | ||
ID: 22240
User updated by: shadlej at iwakuni dot usmc dot mil
Reported By: shadlej at iwakuni dot usmc dot mil
-Status: Feedback
+Status: Open
Bug Type: Math related
Operating System: Windows
PHP Version: 4.3.0
New Comment:
Well, it sort-of worked. I had to move the number_format function off
the $var and into the echo in BOTH areas. (follows) I don't know why it
works the other way up until a total of 999 and anything after that is
incorrect. I guess it doesn't matter. Lesson learned. ThanX for
following up.
// $totalamount = number_format($totalamount, 2);
echo "<br>\n";
echo "Items Ordered: ".$totalqty."<br>\n";
echo "Subtotal: $".number_format($totalamount,
2)."<br>\n";
$taxrate = 0.10;
$totalamount = $totalamount * (1 + $taxrate);
// $totalamount = number_format($totalamount, 2);
echo "Total including tax: $".number_format($totalamount,
2)."<br>\n";
Previous Comments:
------------------------------------------------------------------------
[2003-02-17 17:44:59] sniper@php.net
<?php
echo number_format(1111, 2);
?>
Does this work?
------------------------------------------------------------------------
[2003-02-17 02:58:54] shadlej at iwakuni dot usmc dot mil
Same results. ( I used the Windows build ) Anything over 999 as a total
gets an incorrect result. BTW number_function should read
number_format. Sorry for the mistake.
------------------------------------------------------------------------
[2003-02-16 10:28:20] iliaa@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php4-STABLE-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php4-win32-STABLE-latest.zip
------------------------------------------------------------------------
[2003-02-16 03:44:07] shadlej at iwakuni dot usmc dot mil
I got this code from a book. It works as long as the total is less than
999. when it exceeds 999, it can't calculate the total properly. I
think it has something to do with the number_function.
+++++++++++++++++++++index.html ++++++++++++++++++
<form action="processorder.php" method=post>
<table border=0>
<tr bgcolor=#cccccc>
<td width=150>Item</td>
<td width=15>Quantity</td>
</tr>
<tr>
<td>Tires</td>
<td align=center><input type="text" name="tireqty" size=3
maxlength=3></td>
</tr>
<tr>
<td>Oil</td>
<td align=center><input type="text" name="oilqty" size=3
maxlength=3></td>
</tr>
<tr>
<td>Spark Plugs</td>
<td align=center><input type="text" name="sparkqty" size=3
maxlength=3></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value="Submit
Order"></td>
</tr>
</table>
</form>
++++++++++++ preprocess.php ++++++++++++++++++
<html>
<head>
<title>Jim's Auto Parts - Order Results</title>
</head>
<body>
<h1>Jim's Auto Parts</h1>
<h2>Order Results</h2>
<?
define("TIREPRICE", 100);
define("OILPRICE", 10);
define("SPARKPRICE", 4);
echo "<p>Order Processed at ";
echo date("H:i, jS F");
echo "<br>";
echo "<p>Your order is as follows:";
echo "<br>";
echo $tireqty." tires<br>";
echo $oilqty." bottles of oil<br>";
echo $sparkqty." spark plugs<br>";
$totalqty = $tireqty + $oilqty + $sparkqty;
$totalamount = $tireqty * TIREPRICE
+ $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.10;
$totalamount = $totalamount * (1 + $taxrate);
$totalamount = number_format($totalamount, 2);
echo "Total including tax: $".$totalamount."<br>\n";
?>
</body>
</html>
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=22240&edit=1