#!/usr/bin/python
# -*- coding: utf-8 -*-
num_map =
def sectionchinese(str):
res = 0
sectionnum = 0
for i in range(len(str)):
v = num_map.get(str[i])
if v<=9 and v>=0:
sectionnum = v
if i == len(str) - 1:
res=res+sectionnum
elif v == 10 or v==100 or v==1000:
# 處理"十"開頭的
if i == 0:
sectionnum = 1
sectionnum = sectionnum * v
res = res+sectionnum
return res
def chinesetonumber(string):
if "零" in string:
string = string.replace("零","")
flag = false
k = 0
str1 = ''
str2 = ''
str3 = ''
for i in range(len(string)):
if string[i] == "億":
k = i+1
str1 = string[0:i]
flag = true
if "萬" not in string and i+1 < len(string):
str3 = string[i+1:]
elif string[i] == "萬":
str2 = string[k:i]
if i+1 < len(string):
str3 = string[i+1:]
flag = true
if not flag:
str3 = string
result = sectionchinese(str1)*100000000+sectionchinese(str2)*10000+sectionchinese(str3)
return result
string= ["三","六","八","二十","八十","一百","三百","一千","一萬","十萬","三十萬","二十萬","三百萬",
"一億","十億","二十億","四百億","四千億","二十三","四十五","三十六","三百二十","六百三十",
"八百九十","三千六百二十","五千七百三十","一萬二千二百三十六","十萬八千六百三十四","二十萬三千",
"二十萬零三千","一百萬零八千零六十","七百萬零五十六","四百萬","一千萬零八百六十四","八千萬零九百八十二",
"一億零八十","一億八千六百三十二萬三千六百五十二","十億六千零五十四萬三千","九億零八百六十二","三百億",
"三百億零四百八十萬三千六百二十","三百億零三十","三百億三千萬","三百億零三萬"]
for string in string:
print (string+"--->"+str(chinesetonumber(string)))
"""輸出:
三--->3
六--->6
八--->8
二十--->20
八十--->80
一百--->100
三百--->300
一千--->1000
一萬--->10000
十萬--->100000
三十萬--->300000
二十萬--->200000
三百萬--->3000000
一億--->100000000
十億--->1000000000
二十億--->2000000000
四百億--->40000000000
四千億--->400000000000
二十三--->23
四十五--->45
三十六--->36
三百二十--->320
六百三十--->630
八百九十--->890
三千六百二十--->3620
五千七百三十--->5730
一萬二千二百三十六--->12236
十萬八千六百三十四--->108634
二十萬三千--->203000
二十萬零三千--->203000
一百萬零八千零六十--->1008060
七百萬零五十六--->7000056
四百萬--->4000000
一千萬零八百六十四--->10000864
八千萬零九百八十二--->80000982
一億零八十--->100000080
一億八千六百三十二萬三千六百五十二--->186323652
十億六千零五十四萬三千--->1060543000
九億零八百六十二--->900000862
三百億--->30000000000
三百億零四百八十萬三千六百二十--->30004803620
三百億零三十--->30000000030
三百億三千萬--->30030000000
三百億零三萬--->30000030000
"""
思路:
參考:
面試 阿拉伯數字金額轉漢字
要求將阿拉伯數字轉為漢字顯示出來 包含單位 幾個小的注意點 1 中文字元佔兩個位元組,所以如果用c語言實現,需要用char陣列的形式儲存單個漢字。2 如果數字 現連續的零,需要把它替換為單一的零。3 在億 萬 元的前面乙個漢字不可以為零 人民幣讀取方式決定 4 double數值可分為整數部分和小數部...
阿拉伯數字轉成漢字
做乙個中醫專案時後台返回是阿拉伯數字,專案需求是需要轉化為中文數字,記錄一下轉化方法,感覺要比那種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...