2015-12-29 2 views
0

Я хочу создать функцию, которая округляется до своего размера.PHP round value для своего собственного размера (десять, hunderd, тыс.)

Пример:

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

Как 5 становится 10, если определение дюжины является «группа или набор из двенадцати «? –

+1

Почему 51 становится 60 и 121, 200? Какова его логика? И до 10000, что бы это было? 100000? –

+2

Либо вы округлите до ближайших десятков, или сотен, или тысяч или десять тысяч. Ваш вопрос не соответствует определенному шаблону. –

ответ

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

Выглядит чистым и читаемым, но есть ли $ rozriad и что он содержит? – IMarks

+0

@IMarks, я изменил свой ответ. – Yurich

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

Кстати: 100 выходов 200 –

+0

Спасибо, это делает работу. Рад, что вы поняли, чего я хочу, несмотря на то, что я использовал неправильный перевод. – IMarks

 Смежные вопросы

  • Нет связанных вопросов^_^