初学者的奇怪问题!

zhangli 2004-05-02 08:50:10
以下程序如果计算的商品总价$totalamount<1000时,后面计算含增值税商品总价$totalamount输出没问题。
可前面计算的商品总价$totalamoun>1000时,后面计算含增值税商品总价$totalamount输出就会出错。
不知那位大侠给解释一下?

程序如下:
<?php

$totalqty = 0;
$totalamount = 0.00;

define("TYREPRICE", 100); //轮胎单价
define("OILPRICE", 10); //汽油单价
define("SPARKPRICE", 4); //火花塞单价
define("TAXRATE",0.17); //零售商品增值税税率17%

$tyreqty = $_POST["tyreqty"]; //从定购页面获取商品件数
$oilqty = $_POST["oilqty"];
$sparkqty = $_POST["sparkqty"];


$totalqty = $tyreqty + $oilqty + $sparkqty; //定购商品件数汇总
if($totalqty==0)
{
echo "<font color=red>您没有订购任何商品!</font><p>";
echo "<A HREF=orderform.html>返回选购汽车配件</A>";
}
else
{
echo "<p>您选购的商品清单:";
echo "<br>";
echo $tyreqty ." 个轮胎<br>";
echo $oilqty ." 桶汽油<br>";
echo $sparkqty ." 个火花塞<br>";

$totalamount = $tyreqty * TYREPRICE //计算商品总价
+ $oilqty * OILPRICE
+ $sparkqty * SPARKPRICE;
$totalamount = number_format($totalamount, 2);

echo "<br>\n";
echo "选购商品件数汇总: ".$totalqty."<br>\n";
echo "您选购商品的总价: ".$totalamount."元<br>\n";

$totalamount *= (1 + TAXRATE); //计算含增值税商品总价
$totalamount = number_format($totalamount, 2);

echo "您一共需要支付(含增值税):".$totalamount."元<br>\n";
echo "<p>定单处理于 ";
echo date("H:i, jS F")."<P>";
echo "<font color=blue>欢迎您以后再次光顾我的汽车配件商店!</font>";

}
?>
...全文
48 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangli 2004-05-06
  • 打赏
  • 举报
回复
问题解决了!多谢 52juanjuan(Fibona)
number_format格式化数字字符串
前面把价格都变成字符串了,后面一个字符串*一个数肯定会出错!
52juanjuan 2004-05-03
  • 打赏
  • 举报
回复
$totalamount = number_format($totalamount, 2);
先算好增值税之后才再进行格式化看看,初看你的思路没有什么问题,关键是你先格式化有可能造成数据先丢失了,所以会出现错误的数据

21,890

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧