2012-03-19 3 views
0

У меня есть два входаОкругление до ближайшего 5/10 в PHP

min, max 

В случае, когда мин = 32 и макс = 46, то я хотел бы PHP автоматически значение до ближайшего 5/10, т.е. в этот случай min = 30 и max = 50?

Но в случае, конечно, если мин = 35 или 40 и макс = 40 или 45 не было бы никакой необходимости округлять.

Как добиться этого в PHP?

Btw система использует только целые значения, и приведенные выше значения являются просто примерами. Он должен работать в диапазоне от 0 до бесконечности. Так что 4 будет округлять до 0, 6 до 10 ... и т.д. ...

ответ

6
function round_to_10($n) { 
    return round($n/10) * 10; 
} 


php> echo round_to_10(32) 
30 
php> echo round_to_10(46) 
50 
+2

подлый подлый ... –

+0

@KristianAntonsen OP хочет 46 -> 50. Ваш ответ делает 46 -> 45. – Dogbert

1

Если умножить число на два, вы можете округлить это 10с, а затем разделить его на 2 раз.

function round_five($num) { 
    return round($num*2,-1)/2; 
} 

$nums = array(32,46,35,40); 

foreach($nums as $num) { 
    printf("%s: %s\n",$num,roundFive($num)); 
} 

выше возвратит

32: 30 
46: 45 
35: 35 
40: 40 
Смежные вопросы