金额转泰文

本文介绍了一个Java实用程序,用于将数字金额转换为泰文格式,适用于泰国银行和财务文档。该程序能处理从零到万亿级别的数值,包括小数部分的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class ThaiBahtUtil {

/****
 * 
 * 金额转泰文
 * @param  strNumber  金额
 * @param  IsTrillion 默认false
 * */
public static String ThaiBahtText(String strNumber, boolean IsTrillion) throws Exception
{
	String BahtText = "";
	String strTrillion = "";
	String[] strThaiNumber = { "ศูนย์", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า", "สิบ" };
	String[] strThaiPos = { "", "สิบ", "ร้อย", "พัน", "หมื่น", "แสน", "ล้าน" };

	String strInteger = strNumber.split("\\.")[0];
	String strSatang = "00";
	if(strNumber.split("\\.").length==1){
		strSatang = "00";
	}
	if(strNumber.split("\\.").length>1){
		 if(strNumber.split("\\.")[1].length() < 2){
			 strSatang=strNumber.split("\\.")[1]+"0";
		 }else{
			 strSatang=strNumber.split("\\.")[1];
		 }
	}		
 
    if (strInteger.length() > 13)
        throw new Exception("รองรับตัวเลขได้เพียง ล้านล้าน เท่านั้น!");
 
    boolean _IsTrillion = strInteger.length() > 7 ;
    if (_IsTrillion)
    {
    	System.out.println(strInteger.length());
        strTrillion = strInteger.substring(0, strInteger.length() - 6);
        System.out.println(strTrillion);
        BahtText = ThaiBahtText(strTrillion, _IsTrillion);
        strInteger = strInteger.substring(strTrillion.length());
    }
    
    int strLength = strInteger.length();
    for (int i = 0; i < strInteger.length(); i++)
    {
        String number = strInteger.substring(i, (i+1));
        if (!"0".equals(number))
        {
            if (i == strLength - 1 &&  "1".equals(number) && strLength != 1)
            {
                BahtText += "เอ็ด";
            }
            else if (i == strLength - 2 && "2".equals(number) && strLength != 1)
            {
                BahtText += "ยี่";
            }
            else if (i != strLength - 2 ||  !"1".equals(number))
            {
                BahtText += strThaiNumber[Integer.parseInt(number)];
            }
 
            BahtText += strThaiPos[(strLength - i) - 1];
        }
    }

    if (IsTrillion)
	{
		return BahtText + "ล้าน";
	}
    
    if(!"0".equals(strInteger))
    {
        BahtText += "บาท";
    }

    if ("00".equals(strSatang))
    {
        BahtText += "ถ้วน";
    }else
    {
        strLength = strSatang.length();
        for (int i = 0; i < strSatang.length(); i++)
        {
            String number = strSatang.substring(i, (i+1));
           
            if (!"0".equals(number))
            {
                if (i == strLength - 1 &&  "1".equals(number) &&  !"0".equals(strSatang.substring(0,1)))
                {
                    BahtText += "เอ็ด";
                }
                else if (i == strLength - 2 &&  "2".equals(number) &&   !"0".equals(strSatang.substring(0,1)))
                {
                    BahtText += "ยี่";
                }
                else if (i != strLength - 2 ||  !"1".equals(number))
                {
                    BahtText += strThaiNumber[Integer.parseInt(number)];
                }
 
                BahtText += strThaiPos[(strLength - i) - 1];
            }
        }
         
        BahtText += "สตางค์";
    }
	return BahtText;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值