數字轉英文
跳至導覽
跳至搜尋
Crystal Reports版本
- Crystal Reports 公式欄位用(以下的範例是先統計DataTable2.dt2_SumOfMoney,再數字轉英文)
Local numberVar SumOfMoney := int(sum({DataTable2.dt2_SumOfMoney})); Local stringVar strTotal := ''; Local stringVar array StrNO := MakeArray('One','Two','Three','Four','Five','Six','Seven','Eight','Nine','Ten','Eleven','Twelve','Thirteen','Fourteen','Fifteen','Sixteen','Seventeen','Eighteen','Nineteen'); Local stringVar array StrTens := MakeArray('Ten','Twenty','Thirty','Forty','Fifty','Sixty','Seventy','Eighty','Ninety'); Local stringVar array StrUnit := MakeArray('Hundred','Thousand','Million','Billion','Trillion'); if ((Log(SumOfMoney)/Log(10)) > 15) then ( '數值溢位' ) else ( Local numberVar x := int(SumOfMoney); Local numberVar Lv := 0; While (x > 0) Do ( Local numberVar m1000 := int(x mod 1000); //0~999 Local numberVar m100 := int(m1000 mod 100); //0~99 Local numberVar m10 := int(m1000 mod 10); //0~9 Local numberVar x3 := int(m1000 / 100); //百位 Local numberVar x2 := int(m100 / 10); //十位 if (Lv > 0) then ( strTotal := StrUnit[Lv+1] + ' ' + strTotal; ); if (m100 > 0) then ( if (m100 <= 19) then ( strTotal := StrNO[m100] + ' ' + strTotal; ) else ( if (m10 > 0) then ( strTotal := StrTens[x2] + ' ' + StrNO[m10] + ' ' + strTotal; ) else ( strTotal := StrTens[x2] + ' '+ strTotal; ); ); ); If (x3 > 0) Then ( strTotal := StrNO[x3] + ' ' + StrUnit[1] + ' ' + strTotal; ); x := int(x / 1000); Lv := Lv + 1; ); ''+strTotal );