我有一个非常简单的PHP问题,但我不知道该怎么做。
我希望舍入到最大数百或数千,具体取决于数据库返回的值。
以下是我需要的几个例子:
等等
我想根据传递的值创建一个自动函数来实现。
谢谢!
答案 0 :(得分:4)
最终实施,灵感来自Shaunkak's answer和SO的评论。谢谢你们这些文胸。 live demo
<?php
$val = 10241.67;
if($val >= 1000) {
echo ceil($val / 1000) * 1000;
}
else {
$length = strlen(ceil($val));
$times = str_pad('1', $length, "0");
echo ceil($val / $times) * $times;
}
答案 1 :(得分:2)
<?php
$value = 14;
$len = strlen($value);
$div = str_pad('1', $len, "0");
echo ceil($value / $div) * $div;
?>
答案 2 :(得分:0)
试试这个
<?php
$input = 10241; //this will be your input
$charLength = strlen($input);
$number = [1,10,100,1000,10000,100000];
$output = ceil($input / $number[$charLength - 1]) * $number[$charLength - 1]; //same like this ceil($input / 10) * 10;
?>
答案 3 :(得分:0)
每个使用字符串操作的人都不会给我留下深刻的印象!
$zeros = log($value) * log10(M_E) | 0;
$zeros = min($zeros, 3); // Only round to tens, hundreds or thousands
$tens = pow(10, $zeros);
$result = ceil($value / $tens) * $tens;