全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1974
推到 Plurk!
推到 Facebook!

把數字轉成英文

 
it1506
初階會員


發表:32
回覆:89
積分:49
註冊:2011-02-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-03-11 10:34:33 IP:220.132.xxx.xxx 未訂閱

[code delphi]
function TForm1.amountEng(n: Currency): String;
const
highNumber :array[0..3] of String =(' HUNDRED',' THOUSAND',' MILLION',' BILLION');
engNumber :array[0..100] of string=(
,' ONE'
,' THREE'
,' FIVE'
,' SEVEN'
,' NINE'
,' ELEVEN'
,' THIRTEEN'
,' FIFTEEN'
,' SEVENTEEN'
,' NINETEEN'
,' TWENTY-ONE'
,' TWENTY-THREE'
,' TWENTY-FIVE'
,' TWENTY-SEVEN'
,' TWENTY-NINE'
,' THIRTY-ONE'
,' THIRTY-THREE'
,' THIRTY-FIVE'
,' THIRTY-SEVEN'
,' THIRTY-NINE'
,' FORTY-ONE'
,' FORTY-THREE'
,' FORTY-FIVE'
,' FORTY-SEVEN'
,' FORTY-NINE'
,' FIFTY-ONE'
,' FIFTY-THREE'
,' FIFTY-FIVE'
,' FIFTY-SEVEN'
,' FIFTY-NINE'
,' SIXTY-ONE'
,' SIXTY-THREE'
,' SIXTY-FIVE'
,' SIXTY-SEVEN'
,' SIXTY-NINE'
,' SEVENTY-ONE'
,' SEVENTY-THREE'
,' SEVENTY-FIVE'
,' SEVENTY-SEVEN'
,' EVENTY-NINE'
,' EIGHTY-ONE'
,' EIGHTY-THREE'
,' EIGHTY-FIVE'
,' EIGHTY-SEVEN'
,' EIGHTY-NINE'
,' NINETY-ONE'
,' NINETY-THREE'
,' NINETY-FIVE'
,' NINETY-SEVEN'
,' NINETY-NINE'
g:=trunc(y/10000);
y:=y-g*10000;
eng:=eng engNumber[trunc(y/1000)] highNumber[1];
g:=trunc(y/100);
y:=y-g*100;
eng:=eng engNumber[trunc(y)];
eng:=eng ' AND CENT' engNumber[strtoint(formatfloat('0',z*100))]; //四捨五入, 不使用銀行界的四捨五入 roundto 函數
end;
result:=eng;
end;
[/code]
程式的作法是照英文寫作的方式,
英文就是 0~99, 百 ,千, 10千,百千, 千千=百萬;
程式內容很簡單,就是判斷該數字的位置(0~99, 百 ,千, 10千,百千), 再從陣列中找出對映的 英文字 , 是一種很直覺的做法
小數點是取到2位數, 主因是實際金額沒有到小數兩位以下.
我只做到百千,金額在百萬以下
超過的部分要再加程式
目前測試沒看到奇怪的結果...
系統時間:2024-06-29 21:08:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!