2012-03-19 66 views
0

最近的5/10我有兩個輸入舍入到在PHP

min, max 

在這種情況下其中min = 32和max = 46然後我想PHP自動的值在最近的5/10即這種情況最小= 30和最大= 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

偷偷摸摸鬼鬼祟祟...... – 2012-03-19 16:08:28

+0

@KristianAntonsen OP要46 - > 50你的回答呢46 - > 45。 – Dogbert 2012-03-19 16:23:11

1

如果將數字乘以2,則可將其舍入爲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