Bundar ke 5 sen terhampir cara Malaysia
Posted On 28/02/2009
					Sejak Malaysia tidak lagi mengeluarkan syiling 1sen, segala sistem pembayaran yang telah digunakan terpaksa diubahsuai agar nilai sen 1,2 dibundarkan menjadi 0. Nilai sen 3,4,6 dan 7 pula dibundarkan menjadi 5sen manakala 7,8 pula akan menjadi 10sen. Isu ini telahpun dibincangkan di forum http://php.net.my .
Berikut adalah cara penyelesaian yang aku cadangkan
<?php 
$nilai = 12.91; 
function roundRM($nilai) 
{ 
    $round = array('1' => '0', 
                   '2' => '0', 
                   '3' => '5', 
                   '4' => '5',  
                   '5' => '5' ,  
                   '6' => '5' ,  
                   '7' =>'5',  
                   '8' => '0',  
                   '9' => '0' ); 
    $splitNilai = explode('.',$nilai); 
    $splitCent = str_split($splitNilai[1],'1'); 
    $centBack = $splitCent[1]; 
    if($centBack > 7) 
    { 
        $nilaiAll = $splitNilai[0].'.'.$splitCent[0];  
        $nilaiAll = number_format($nilaiAll + 0.1,1); 
        $nilaiAll = $nilaiAll . $round[$centBack]; 
    } 
    else 
    { 
        $nilaiAll = $splitNilai[0].'.'.$splitCent[0]. $round[$centBack]; 
    } 
    return $nilaiAll; 
} 
echo roundRM($nilai); 
?> 
Dan penyelesaian yang lebih mudah ini dicadangkan oleh doubt di forum yang sama.
<?php 
function round5Sen ($value) { 
    return number_format(round($value*20,0)/20,2,'.',''); 
} 
echo round5Sen(155.13); 
echo "\n"; 
echo round5Sen(155.12); 
echo "\n"; 
echo round5Sen(155.0); 
echo "\n"; 
echo round5Sen(155.18); 
echo "\n"; 
?> 
Jadi pilihlah cara yang mana yang kamu rasa sesuai untuk diri kamu.