BTC USD 84,018.1 Gold USD 4,279.19
Time now: Jun 1, 12:00 AM

[PHP]Tukar nombor ke perkataan.

erro_sennin

Fun Poster
Messages
796
Joined
May 10, 2010
Messages
796
Reaction score
41
Points
20
Di tengah2 malam mcm ne aku ada mood plak nak bt code.
So masalah aku bila nk tukar nombor ke perkataan ,

cth
RM 3560

jadi

Tiga Ribu Lima Ratus Enam Puluh Ringgit Malaysia Sahaja.

Client nk bila print invoice/resit/baucer dia keluar perkataan cm tu la.

Penyelesaian:-

Google la dlu, kot2 dh ada org buatkan :)paid
bila googling, jmpa satu code yang berguna

Code

PHP:
<?php
/** 
*  Function:   convert_number 
*
*  Description: 
*  Converts a given integer (in range [0..1T-1], inclusive) into 
*  alphabetical format ("one", "two", etc.)
*
*  @int
*
*  @return string
*
*/ 
function convert_number($number) 
{ 
    if (($number < 0) || ($number > 999999999)) 
    { 
    throw new Exception("Number is out of range");
    } 

    $Gn = floor($number / 1000000);  /* Millions (giga) */ 
    $number -= $Gn * 1000000; 
    $kn = floor($number / 1000);     /* Thousands (kilo) */ 
    $number -= $kn * 1000; 
    $Hn = floor($number / 100);      /* Hundreds (hecto) */ 
    $number -= $Hn * 100; 
    $Dn = floor($number / 10);       /* Tens (deca) */ 
    $n = $number % 10;               /* Ones */ 

    $res = ""; 

    if ($Gn) 
    { 
        $res .= convert_number($Gn) . " Million"; 
    } 

    if ($kn) 
    { 
        $res .= (empty($res) ? "" : " ") . 
            convert_number($kn) . " Thousand"; 
    } 

    if ($Hn) 
    { 
        $res .= (empty($res) ? "" : " ") . 
            convert_number($Hn) . " Hundred"; 
    } 

    $ones = array("", "One", "Two", "Three", "Four", "Five", "Six", 
        "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", 
        "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eightteen", 
        "Nineteen"); 
    $tens = array("", "", "Twenty", "Thirty", "Fourty", "Fifty", "Sixty", 
        "Seventy", "Eigthy", "Ninety"); 

    if ($Dn || $n) 
    { 
        if (!empty($res)) 
        { 
            $res .= " and "; 
        } 

        if ($Dn < 2) 
        { 
            $res .= $ones[$Dn * 10 + $n]; 
        } 
        else 
        { 
            $res .= $tens[$Dn]; 

            if ($n) 
            { 
                $res .= "-" . $ones[$n]; 
            } 
        } 
    } 

    if (empty($res)) 
    { 
        $res = "zero"; 
    } 

    return $res; 
} 


$cheque_amt = 3560 ; 
try
    {
    echo convert_number($cheque_amt);
    }
catch(Exception $e)
    {
    echo $e->getMessage();
    }
?>

Bila run code dekat atas, keluar output

HTML:
Three Thousand Five Hundred and Sixty

:)paid , senang keje aku. Dh dpt idea, so edit dan customize code
dekat atas sesuai dgn framework aku. Setle.

sumber code - LINK

So sapa yang nk try or mncari benda yg sama, silakan cuba.
Atau sapa2 yang ada code lg menarik dan senang boleh share dekat
thread ne :)cgrock



regards.
 
Last edited:
geng ninja nih... bijok bijok... :)cgrock
 
tapi aku tak tahu nak aplikasikan kod2 ni dalam kehidupan aku.. hehe thanks TT share ilmu baru.
 
cool.. kalau cek BM kena ada "Tiga Ribu Lima Ratus Sahaja".
 
kat nak belajor buat code sempoi2? :D
 
wah.. menarik ni.. leh simpan
 
Back
Top
Log in Register