python 數字轉人民幣讀法

2021-09-30 00:11:10 字數 2523 閱讀 4484

''

'把乙個浮點數分解成整數和小數部分字串

num是需要被分解的浮點數

返回分解出來的整數和小數部分

第乙個陣列元素是整數部分,第二個數字元素是小數部分'''

def divide(num)

:#將乙個浮點數強制轉換成int型別,即得到他的整數部分

integer = int(num)

#浮點數減去整數部分,得到小數部分,小數部分×100取整數,得到2位小數

fraction = round((num-integer) * 100)

#下面把整數轉換成字串

return

(str(integer),str(fraction))

han_list =

["零","壹","貳","叄","肆","伍","陸","柒","捌","玖"

]unit_list =

["十","百","千"

]xiaoshu_list =

["角","分"]''

'把乙個4位數數字字元轉換成漢字字串

num_str是需要被轉換的4位數數字字串

返回4位數字串被轉換成漢字字串'''

def four_to_hanstr(num_str):

result =

"" num_len = len(num_str)

#依次歷遍數字字串的每乙個數字

for i in range(num_len):

num = int(num_str[i]

)#若有兩個0連用,唯讀乙個0

if i != num_len - 1 and num_str[i]

=="0" and num_str[i + 1]

=="0"

: pass

#若最後一位是0,不讀

elif i == num_len - 1 and num == 0 :

pass

#如果不是最後一位數字,而且數字不是零,則需要新增單位(千,百,十)

elif i != num_len - 1 and num != 0 :

result += han_list[num] + unit_list[num_len - 2 - i]

#否則不需要新增單位

else

: result += han_list[num]

return result'''

把乙個2位數數字字元轉換成漢字字串

num_str是需要被轉換的2位數數字字串

返回2位數字串被轉換成漢字字串'''

def two_to_hanstr(num_str):

result =

"" num_len = len(num_str)

#依次歷遍數字字串的每乙個數字

for i in range(num_len):

num = int(num_str[i]

)#若是0,不讀

if num == 0 :

pass

#如果不是零,則需要新增單位(角,分)

else

: result += han_list[num] + xiaoshu_list[num_len - 2 - i]

return result'''

把數字字串變成漢字字串

num_str是需要轉換的數字字串

返回數字字串被轉換成漢字字串'''

def integer_to_str(num_str)

: str_len = len(num_str)

if str_len > 12 :

print(

"數字太大,翻譯不了"

)return

elif str_len > 8 :

return four_to_hanstr(num_str[:-8]

) + '億' + \

four_to_hanstr(num_str[-8:-4]

) + '萬' + \

four_to_hanstr(num_str[-4:]

)+ '圓'

elif str_len > 4 :

return four_to_hanstr(num_str[:-4]

) + '萬' + \

four_to_hanstr(num_str[-4:]

)+ '圓'

else

:return four_to_hanstr(num_str)+ '圓'

num = float(input(

"請輸入乙個浮點數:"

))integer,fraction = divide(num)

print(integer_to_str(integer))

print(fraction)

print(integer_to_str(integer)+two_to_hanstr(fraction))

難點在於對連續0的處理。小數部分處理相對於整數部分要簡單一些

Python專案實戰 數字轉人民幣讀法

本節實現在實際開發中常用的乙個工具函式 將乙個浮點數轉換 民幣讀法的字串,這個程式需要使用陣列。實現這個函式的思路是,首先把這個浮點數分成整數部分和小數部分。提取整數部分很容易,直接將這個浮點數強制型別轉換成乙個整數即可,這個整數就是浮點數的整數部分 再使用浮點數減去整數就可以得到這個浮點數的小數部...

數字轉人民幣

數字轉換人民幣大寫形式 銀行 單位和個人填寫的各種票據和結算憑證需要將數字金額寫 民幣大寫形式,它的規則主要有以下幾條 1 數字和單位使用壹 貳 叄 肆 伍 陸 柒 捌 玖 拾 佰 仟 萬 億 元 角 分 零 整等字樣,不能使用其他漢字 2 中文大寫金額數字到 元 為止的,在 元 之後 應寫 整 字...

千億級別數字的人民幣讀法

package com.sungeo 人民幣的讀法是四位一節 x仟x百x拾 x 億 x仟x百x拾 x 萬 x仟x百x拾 x author administrator public class numtormb private string unitarr new string private str...