需求
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 chinese2digits('
十二'.decode('
cp936'))
"-------------------------
"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.三 ...