0

对于下面的代码,有时$endorsepoints的值不是整数。我希望它根据正常的数学规则四舍五入,向上或向下。

然后,我想将四舍五入的数字输入到两个 MySQL 表中,评论提交

我希望按照正常的数学规则将数字向上或向下舍入。

当数字应该被四舍五入时(即 5203.25),正确的四舍五入的数字(即 5203.00)被添加到commentsubmit中。

当数字应该四舍五入时(即 5151.74),正确的四舍五入数字(即 5152.00)被添加到 submit。但是,在这种情况下,将向下舍入的数字(即 5151.00)添加到comment。在这种情况下,如何使四舍五入的数字发表评论

   $endorsepoints = $endorsepoints * .01;

    $endorsepoints2 = ( $endorsepoints <= 10 ) ? 10 : $endorsepoints;

    $endorsepoints2 = round($endorsepoints2);





    $query1 = sprintf("INSERT INTO comment VALUES (NULL, %d, %d, '%s', %d, NULL)", $uid, $submissionid, $comment, $endorsepoints2);

    mysql_query($query1) or die(mysql_error());


    $query2 = sprintf("UPDATE submission SET points = (points + '$endorsepoints2') WHERE submissionid = '$submissionid'");

    mysql_query($query2) or die(mysql_error());

编辑:我希望始终将相同的数字插入两个表中。我的问题是:为什么不是?

4

3 回答 3

0
$endorsepoints3 = $endorsepoints2;
$endorsepoints2 = round($endorsepoints2);

if($endorsepoints3 > $endorsepoints2) {
    //rounded down
} else {
    //rounded uo
}

无论如何,我不确定你是否在问这个。

于 2013-01-23T00:32:37.617 回答
0

首先,round() 函数将始终正确舍入,即 2.4 变为 2,2.6 变为 3,您是否正在寻找 floor() 和 ceil() 以及 number_format() 以四舍五入到最低或最高,得到小数“并且知道关于它”?

此后它就像使用 if/else 根据结果匹配运行查询一样简单 <==>

于 2013-01-23T00:33:03.440 回答
-1

使用ceil()而不是round()

它只四舍五入

于 2013-01-23T00:57:34.980 回答