округление — PHP округляет значение до его собственного размера (десять, хундерд, тысяч)

Я хочу сделать функцию, которая округляется до собственного размера значения.

Пример:

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

Как я могу сделать это в PHP. Я знаю, что это можно сделать с помощью ceil / round, но я не знаю как.

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));
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;
}
0

По вопросам рекламы [email protected]