0

好的,我正在制作一个计算第 1 行 + 第 2 行 +*.01% 然后添加第 3 行 + 第 4 行然后给出总数的表格。我在使用 *.01 时遇到问题,它只适用于前两个,但是当我添加最后两个时,如果我把它全部取出四个,它就会掉一行。

<?php
if (count($_POST) > 0 && isset($_POST["calc15TextArea2"])){
    // add First and Second Numbers
    $sum = $_POST["indexEditbox1"] + $_POST["indexEditbox2"]*.01+ $_POST      ["calc15Editbox3"] + $_POST ["calc15Editbox4"];
    // their sum is diplayed as
    echo "Total is $ $sum";
}
?>
4

2 回答 2

0

将您所有的帖子变量包装起来,intval()例如intval($_POST['indexEditBox2'])

此函数将从字符串中获取整数值。(使用等效函数,例如floatval()如果它们不是整数)

编辑:也尝试0.01代替.01. 鉴于这只是一种疯狂的预感,我可能只是.. 被选为连接运算符。

所以试试:

    $sum = floatval( $_POST["indexEditbox1"] ) + floatval( $_POST["indexEditbox2"] ) * 0.01+ floatval( $_POST["calc15Editbox3"] ) + floatval( $_POST["calc15Editbox4"] ) ;

编辑2:看评论!乘法和除法优先于加法和减法。

于 2013-05-20T22:45:03.970 回答
0

如果您使用的是 html 5,您可以在 html 标记中使用floatvalintval指定表单输入的输入类型。

一个例子是;

<input type="number" name="indexEditBox1" />

然后在你的php代码中你可以简单地做;

$sum = $_POST["indexEditbox1"] + $_POST["indexEditbox2"] * .01 + $_POST["calc15Editbox3"] + $_POST ["calc15Editbox4"];

此外,我建议您将计算括在括号中以获得所需的结果,这也使其更易于阅读,尤其是当您的计算变得更加复杂时。我不会把它改成;

$sum = (($_POST["indexEditbox1"] + $_POST["indexEditbox2"]) * .01) 
       + ($_POST["calc15Editbox3"] + $_POST ["calc15Editbox4"]);

如果您不使用 html5 或觉得需要安全,因为人们可以将数据注入表单,您应该使用intvalorfloatval函数。

于 2013-05-20T22:56:51.690 回答