下面是我在while循环中使用的代码,用于在表格行中显示一个数字,它的数量除以旁边的200('amount')。
它工作正常,它取小数并除以200,但我想知道如何将其舍入?
例如,如果我有850,它将回显'4',但是如果数量超过900,它将回显'5'。我知道,如果它超过200的中间位置,它会向上舍入,但我怎样才能将200以下的所有内容都舍入?
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo '<tr>';
echo '<td align="left"><strong>' . $row['name'] . '</strong></td> ';
echo '<td align="left">' . $row['amount'] . '</td>';
echo '<td align="center"><strong><font color="#be0f34">';
echo number_format("{$row['amount']}"/200,0);
echo '</font></strong></td>';
echo '<td align="center">' . $row['date'] . '</td>
</tr>
';
}
干杯
答案 0 :(得分:3)
使用floor()
:
echo number_format(floor($row['amount']/200),0);
答案 1 :(得分:1)
答案 2 :(得分:0)
您应该使用floor()
代替number_format()
echo floor($row['amount']/200);
答案 3 :(得分:0)
您不应该在传递给number_format
的第一个参数中强制将类型转换为字符串。此外,第二个参数默认为零,因此您无需明确指定。您可以在该行上使用number_format($row['amount'] / 200);
。
就你的问题而言,当你的数量超过200时,我正在收集你想要回合的数据,这样当数量> = 100时你就不会得到“1”。那,你需要做一些事情:
$divided_amount = $row['amount'] / 200;
$divided_amount = floor($divided_amount) ? number_format($divided_amount) : '0';
// display code here
如果分割的金额>> 200,则只会number_format
(因此,舍入)。否则它将是最低限度(我们知道,因为我们刚刚测试它将返回零)。