Bundar ke 5 sen terhampir cara Malaysia

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.

Add a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.