Skip to main content


Xin thông báo: Thủ thuật xây dựng chuyển về trang MIGO Tip




Đọc số thành chữ - Code JavaScript

 

Để hỗ trợ trong công tác phát triển ứng dụng trực tuyến, Thủ thuật xây dựng xin chia sẽ đến các bạn hàm hỗ trợ đọc số thành chữ trên ngôn ngữ JavaScript đang sử dụng phổ biến hiện nay.

<script language="javascript" type="text/javascript">
var ChuSo=new Array(" không"," một"," hai"," ba"," bốn"," năm"," sáu"," bảy"," tám"," chín");
var Tien=new Array( "", " nghìn", " triệu", " tỉ", " nghìn triệu", " trăm triệu");
function trim(s)
{
var r=s.split(".");
var n=r.length;
var s="";
for (var i=0; i < n; i++){s = s+r[i];}
return s;
}
function DocSo3ChuSo(baso,sign)
{
var tram; var chuc; var donvi; var KetQua="";
tram=parseInt(baso/100);
chuc=parseInt((baso%100)/10);
donvi=baso%10;
if(tram==0 && chuc==0 && donvi==0) return  "";
if((tram==0 && sign.toFixed(0)!=0) || tram!=0)
    {
        KetQua += ChuSo[tram] + " trăm";
        if ((chuc == 0) && (donvi != 0)) KetQua += " lẻ";
    }
if ((chuc != 0) && (chuc != 1))
    {
            KetQua += ChuSo[chuc] + " mươi";
            if ((chuc == 0) && (donvi != 0)) KetQua = KetQua + " lẻ";
    }
if (chuc == 1) KetQua += " mười";
    switch (donvi)
    {
        case 1:
            if ((chuc != 0) && (chuc != 1))
            {
                KetQua += " mốt";
            }
            else
            {
                KetQua += ChuSo[donvi];
            }
            break;
        case 5:
            if (chuc == 0)
            {
                KetQua += ChuSo[donvi];
            }
            else
            {
                KetQua += " lăm";
            }
            break;
        default:
            if (donvi != 0)
            {
                KetQua += ChuSo[donvi];
            }
            break;
        }
    return KetQua;
}
function DocTienBangChu()
{
 var number=parseFloat(trim(document.getElementById("number").value));
 var SoTien=number.toFixed(0);
    var lan=0;
    var i=0;
    var so=0;
    var KetQua="";
    var tmp="";
    var ViTri = new Array();
    if(SoTien<0) return "Số tiền âm !";
    if(SoTien==0) return "Không đồng !";
    if(SoTien>0)
    {
        so=SoTien;
    }
    else
    {
        so = -SoTien;
    }
    if (SoTien > 999999999999)
    {
        return "Số quá lớn!";
    }
    ViTri[5] = Math.floor(so / 1000000000000000);
    if(isNaN(ViTri[5]))
        ViTri[5] = "0";
    so = so - parseFloat(ViTri[5].toString()) * 1000000000000000;
    ViTri[4] = Math.floor(so / 1000000000000);
     if(isNaN(ViTri[4]))
        ViTri[4] = "0";
    so = so - parseFloat(ViTri[4].toString()) * 1000000000000;
    ViTri[3] = Math.floor(so / 1000000000);
     if(isNaN(ViTri[3]))
        ViTri[3] = "0";
    so = so - parseFloat(ViTri[3].toString()) * 1000000000;
    ViTri[2] = parseInt(so / 1000000);
     if(isNaN(ViTri[2]))
        ViTri[2] = "0";
    ViTri[1] = parseInt((so % 1000000) / 1000);
     if(isNaN(ViTri[1]))
        ViTri[1] = "0";
    ViTri[0] = parseInt(so % 1000);
  if(isNaN(ViTri[0]))
        ViTri[0] = "0";
    if (ViTri[5] > 0)
    {
        lan = 5;
    }
    else if (ViTri[4] > 0)
    {
        lan = 4;
    }
    else if (ViTri[3] > 0)
    {
        lan = 3;
    }
    else if (ViTri[2] > 0)
    {
        lan = 2;
    }
    else if (ViTri[1] > 0)
    {
        lan = 1;
    }
    else
    {
        lan = 0;
    }
    for (i = lan; i >= 0; i--)
    {
       tmp = DocSo3ChuSo(ViTri[i],lan - i);
       KetQua += tmp;
       if (ViTri[i] > 0) KetQua += Tien[i];
       if ((i > 0) && (tmp.length > 0)) KetQua += ',';//&& (!string.IsNullOrEmpty(tmp))
    }
   if (KetQua.substring(KetQua.length - 1) == ',')
   {
        KetQua = KetQua.substring(0, KetQua.length - 1);
   }
   KetQua = KetQua.substring(1,2).toUpperCase()+ KetQua.substring(2);
   if (KetQua.length > 1)
   {
        KetQua = KetQua+ " đồng";
   }
   return KetQua;
}
function docso()
{       
    document.getElementById("valstr").value = DocTienBangChu();
    document.getElementById("valstr").select(); document.execCommand("copy");
}
</script>

Keywords: Hàm đọc số thành chữ trực tuyến, Code JS đọc số thành chữ.

Comments