面試 阿拉伯數字金額轉漢字

2021-09-30 12:56:11 字數 931 閱讀 2411

要求將阿拉伯數字轉為漢字顯示出來(包含單位)

幾個小的注意點:

1、中文字元佔兩個位元組,所以如果用c語言實現,需要用char陣列的形式儲存單個漢字。

2、如果數字**現連續的零,需要把它替換為單一的零。

3、在億、萬、元的前面乙個漢字不可以為零(人民幣讀取方式決定)。

4、double數值可分為整數部分和小數部分。小數部分較簡單,整數部分需要根據這個數字所在

的位數匹配上對應的單位。

基本思路如下:

分析問題:a、小數點之前為整數,小數點後只有兩位,為角分。

b、小數點之前個位單位為元,依次為元,十,百,千,萬,十萬,百萬,千萬,億……

c、每位的數字對應為:零、壹、貳、叄、肂、伍、陸、柒、捌、镹。

d、在操作中,數值運算和陣列操作效能最快。

思路:a、用兩個陣列,array1[10]、array2按下標為0、1、……的順序分別儲存零、

壹、貳、叄、肂、伍、陸、柒、捌、镹。和元,十,百,千,萬,十萬,百萬,千萬,億……

b、針對整數部分,從十開始除,餘數轉換為漢字,取對應餘數值得陣列array1[餘數]

所對應的值。取得到的商,並記錄除的次數。次數對應為array[次數]的漢字。拼接。

c、反覆第二步,直道商為0。

d、其中餘位為0時特殊處理。

e、小數點後統一處理兩次。不做講述。

舉例:234.12。整數為234。

234/10 商23 餘4 除次數為0 array1[4]+array2[0]=肆元

23/10 商2 餘3 除次數為1 array1[3]+array2[1]=叁拾

2/10 商0 餘2 除次數為2 array1[2]+array2[2]=貳佰

合起來就是貳佰叄拾肆元。

阿拉伯數字轉成漢字

做乙個中醫專案時後台返回是阿拉伯數字,專案需求是需要轉化為中文數字,記錄一下轉化方法,感覺要比那種switch.case.拓展性好一點。因為當時不會超過一千,所以就寫到了百位,其他需求可以自行更改一下。當然預設傳的是整數型別的。public class numbertochineseutil str...

阿拉伯數字轉漢字數字 C

using system using system.collections.generic using system.text public class numtocharactor private string unit new string public numtocharactor publi...

阿拉伯數字轉中文

public class cnuppercaser 供分級轉化的陣列,因為各個例項都要使用所以設為靜態 private static final char series 建構函式,通過它將阿拉伯數字形式的字串傳入 param original public cnuppercaser string o...