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

2021-09-22 11:14:16 字數 2098 閱讀 2459

需求

1

2

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

今天寫了3200行**。

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

原理

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

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

舉例

1

2

3

4

5

6

五百四十三

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

reimport

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]

defchinese2digits(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 =total + 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

'))

結果

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

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

BAT 中文數字to阿拉伯數字轉換

將下面指令碼儲存到文字文件,另存為字尾.bat,執行即可。功能 將當前目錄下所有檔案檔名中的中文數字改為英文數字。echo off for f delims i in dir b do call replacement i exit replacement set t1 1 set t1 t1 九十...

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

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