使用php舍入分割数字

时间:2011-01-13 04:51:06

标签: php row while-loop echo number-formatting

下面是我在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>
    ';
}

干杯

4 个答案:

答案 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(因此,舍入)。否则它将是最低限度(我们知道,因为我们刚刚测试它将返回零)。