PHP舍入值自己的大小(十,hunderd,千)

时间:2015-12-29 10:50:11

标签: php rounding ceil

我想创建一个向上舍入到自己的值大小的函数。

示例:

5    => 10
51   => 60
100  => 100/200 // i don't mind which it will become
121  => 200
999  => 1000
1001 => 2000

我如何在PHP中执行此操作。我知道这可以使用ceil / round来完成,但我不知道如何。

2 个答案:

答案 0 :(得分:0)

您可以使用以下功能实现此目的:

/**
 * by Johannes Schuh, Pineapple Developer
 */ 
function roundIt($number) {
    $amount = 0;
    do {
        $number = $number / 10;
        $amount++;
    } while($number >= 10);
    $result = 0;
    $result = $number - fmod($number, 1);
    $result++;
    $result = $result * pow(10, $amount);
    return $result;
}

答案 1 :(得分:0)

可能是你的意思

function Myround(array $numbers)
{
    $new_numbers = [];
    foreach ($numbers as $num) {
        $rozriad = strlen($num)-1;
        $new_numbers[] = round(ceil($num/pow(10, $rozriad))*pow(10, $rozriad), -$rozriad);
    };
    return $new_numbers;
};

$dozens = [5, 51, 100, 121, 999, 1001];

print_r(Myround($dozens));