Python實現中文數字轉換為阿拉伯數字的方法示例

2022-10-04 21:03:23 字數 1591 閱讀 8670

一、需求

今天寫了三千二百行**。

今天寫了3200行**。

兩行意思相同,只是表達方式不太能夠,統一掉。

二、原理

數字的特徵是   數字 + 單位,例如三百,四十二,九千零二

可以從後往前遍歷,遇到的是0到9的數字,就乘以前一位的單位,遇到新的單位(十百千萬)就替換成數字供下乙個數字用。

三、舉例

五百四十三

1. 三-->3 3 <10 : total = 3

2. 十-->10, 10 ≥10,且不為0 : r = 10

3. 四-->4, 4<10 : total = 3 + 4*10 = 43

4. 百-->100, 10 0≥10,且不為0 : r = 100

5. 五-->5, 5<10 : total = 43 + 5*100 = 543

四、參考**

#-*- coding: cp936 -*-

import re

import string

common_used_numerals_tmp =

common_used_numerals程式設計客棧 = {}

for key in common_used_numerals_tmp:

common_used程式設計客棧_numerals[key.decode('cp936')] = common_used_numerals_tmp[key]

def chinese2digits(uchars_chinese):

total = 0

r = 1 #表示單位:個十百千...

for i in range(len(uchars_chinese) - 1, -1, -1):

val = common_used_numerals.get(uchars_chinese[i])

if val >= 10 and i == 0: #應對 十三 十四 十*之類

if val > r:

r = val

total = total + val

else:

r = r * val

#total =totawww.cppcns.coml + r * x

elif val >= 10:

if val > r:

r = val

else:

r = r * val

else:

total = total + r * val

return total

print chinese2digits('兩百三十二'.decode('cp936'))

print "-------------------------"

print chinese2digits('十二'.decode('cp936'))

print "-------------------------"

print chinese2digits('一億零八萬零三百二十三'.decode('cp936'

結果:ps:這裡再為大家提供幾款數字轉換相關工具供大家程式設計客棧參考使用:

人民幣大寫**轉換工具:

**阿拉伯數字翻譯成英文工具:

阿拉伯數字轉換為中文數字

首先,如果在數字中有小數部分,那麼直接從末尾開始將小數部分的每一位轉換為中文,即 20 28行所示,最後需要增加乙個 點 字。然後,從小數點左邊的低位到高位四位四位地進行轉換,如 34 51行所示。flag是0位數的計數,如果當前四位全是0那麼不需要每四位的單位,如 萬 億 兆 等,見52 53行。...

中文數字轉換為阿拉伯數字

需求 1 2 今天寫了三千二百行 今天寫了3200行 兩行意思相同,只是表達方式不太能夠,統一掉。原理 數字的特徵是數字 單位,例如三百,四十二,九千零二 可以從後往前遍歷,遇到的是0到9的數字,就乘以前一位的單位,遇到新的單位 十百千萬 就替換成數字供下乙個數字用。舉例 1 2 3 4 5 6 五...

數字轉中文數字與中文數字轉數字

利用陣列與map的資料結構進行中文數字與數字之間的互相轉換 public class numberutil private static final char cn num private static final char cn unit private static final string c...