python数字转换成中文大写_python中如何将货币数字转化成汉字大写金额

defformatCurrency(currencyDigits):'''本函数旨在将数字化的金额(不含千分符)转化为中文的大写金额'''maximum_number=99999999999.99cn_zero="零"cn_one="壹"cn_two="贰"cn_three="叁"cn_four="肆"cn_five="伍"cn_six="陆"cn_seven="柒"cn_eight="捌"cn_nine="玖"cn_ten="拾"cn_hundred="佰"cn_thousand="仟"cn_ten_thousand="万"cn_hundred_million="亿"cn_symbol="人民币"cn_dollar="元"cn_ten_cent="角"cn_cent="分"cn_integer="整"integral=None

decimal=None

outputCharacters=None

parts=None

digits, radices, bigRadices, decimals=None,None,None,None

zeroCount=None

i, p, d=None,None,None

quotient, modulus=None ,None

currencyDigits=str(currencyDigits)if currencyDigits=="":return ""

if float(currencyDigits)>maximum_number:print("转换金额过大!")return ""parts= currencyDigits.split(".")if len(parts)>1:

integral=parts[0]

decimal= parts[1]

decimal=decimal[0:2]if decimal=="0" or decimal=="00":

decimal=""

else:

integral=parts[0]

decimal=""digits=[cn_zero,cn_one,cn_two,cn_three,cn_four,cn_five,cn_six,cn_seven,cn_eight,cn_nine]

radices=["",cn_ten,cn_hundred,cn_thousand]

bigRadices=["",cn_ten_thousand,cn_hundred_million]

decimals=[cn_ten_cent,cn_cent]

outputCharacters= ""

if int(integral)>0:

zeroCount=0for i inrange(len(integral)):

p= len(integral) - i - 1d=integral[i]

quotient= int(p / 4)

modulus= p % 4

if d=="0":

zeroCount+=1

else:if zeroCount>0:

outputCharacters+=digits[0]

zeroCount=0

outputCharacters= outputCharacters+ digits[int(d)] +radices[modulus]if modulus==0 and zeroCount < 4:

outputCharacters=outputCharacters +bigRadices[quotient]

outputCharacters+=cn_dollarif decimal!="":

jiao=decimal[0]if jiao=="":

jiao="0"

try:

fen= decimal[1]except:

fen="0"

if fen=="":

fen="0"

if jiao=="0" and fen=="0":pass

if jiao=="0" and fen !="0":

outputCharacters= outputCharacters + cn_zero + digits[int(fen)] + decimals[1]if jiao !="0" and fen=="0":

outputCharacters=outputCharacters + digits[int(jiao)] +decimals[0]if jiao!="0" and fen !="0":

outputCharacters=outputCharacters + digits[int(jiao)] +decimals[0]

outputCharacters=outputCharacters + digits[int(fen)] + decimals[1]if outputCharacters == "":

outputCharacters= cn_zero +cn_dollarif decimal=="":

outputCharacters= outputCharacters+cn_integer

outputCharacters=outputCharactersreturn outputCharacters

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用和引用[2]提到了一种方法,可以利用Python将阿拉伯数字转化为中文大写。这个方法采用拆分法则,先将大数字拆分成整数部分和小数部分,然后按照仟、万、亿、兆的分位拆分整数部分为四个字符串组成的列表。每个字符串最多包含四个字符。接下来,对每个分位的字符串使用中文大写函数转换成中文大写。最后将转换后的结果合并起来。 具体步骤如下: 1. 将输入的数字拆分成整数部分和小数部分。 2. 将整数部分按照仟、万、亿、兆的分位拆分为四个字符串组成的列表。 3. 对每个分位的字符串使用中文大写函数转换成中文大写。 4. 将转换后的结果合并起来。 这样就能够将输入的数字转换成中文大写数字了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Python将阿拉伯数字转化为中文大写](https://blog.csdn.net/weixin_32942557/article/details/113722858)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatgptT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Python数字转化为中文大写的实例代码](https://blog.csdn.net/weixin_30578645/article/details/114398149)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatgptT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值