Python 轉換金額數字大寫為數字小寫

Sonui發表於2024-07-17

透過編寫Python程式碼將中文大寫金額轉換為小寫數字

py浮點型運算有一個魔法,例如1.01*3.0=3.0300000000000002
所以全部轉為整數運算,最後除100返回

def toInt(value):
    isum = 0
    nums = {'零': 0, '壹': 1, '貳':2, '叄': 3, '肆': 4, '伍': 5, '陸': 6, '柒': 7, '捌': 8, '玖':9}
    dw = {'拾': 3, '元': 2, '佰': 4, '仟': 5, '萬' : 6, '角': 1, '分': 0}
    index = 0
    while index < len(value):
        if value[index] != '零':
            if (value[index] == '拾'):
                isum += 1000;
                index += 1
            elif value[index] in nums :
                isum += nums[value[index]] * pow(10, dw[value[index + 1]])
                index += 2
            else:
                index +=1
        else:
            index += 1
    return round(isum, 2) / 100

相關文章