1. 程式人生 > >python實現人民幣大寫轉換

python實現人民幣大寫轉換

#!/usr/bin/python
# -*- coding:utf-8 -*-

# ********* 轉換方法介紹 *********
# 將需要轉換的數字從右向左,每4位分成一個section,如:24530467103,將該數字拆分後,得到:
# 245 3046 7103 (245億3046萬7103)
# 對拆分後的數字先按照section進行數字到漢字的轉換,然後新增數值單位,如:仟,佰,拾,處理結束後可以得到轉換後的序列。
# 對section處理結束後,再對每個section進行單位的追加。如:兆、億、萬。
# 這裡需要注意一些特殊情況,如:section中連續出現0,最後一個數字為0等。

DEBUG = True

upper
= ["零", "壹", "貳", "叄", "肆", "伍", "陸", "柒", "捌", "玖"] decimal_unit = ["角", "分", "釐", "毫"] section_unit = ["萬", "億", "兆"] count_unit = ["拾", "佰", "仟"] def dbg_print(s): if DEBUG: print(s) def split_num(num): num_list = [] if (len(num) <= 4): num_list.append(num) return
num_list while (len(num)): if (len(num) <= 4): num_list.append(num) num_list.reverse() return num_list sec = num[-4:] num_list.append(sec) num = num[:-4] # 處理小數部分,只支援4位,多於4位,四捨五入。 def convert_dec(num): result = "" count = 0
dbg_print(num) for i in num: n = int(i) if (0 != n): result += upper[n] result += decimal_unit[count] count += 1 dbg_print(result) return result # 處理整數部分 def convert_int(num): section_list = split_num(num) dbg_print(num) dbg_print(section_list) result = "" sec_index = len(section_list) - 2 for item in section_list: index = len(item) - 2 # 統計連續出現的數字0的個數。 flag = 0 # 計算遍歷過的item中的字元數。 count = 0 # 對每個section進行處理,得到數字對應的漢字。 for i in item: n = int(i) if (0 == n): flag += 1 else: flag = 0 # 用來區分section的最後一位為0的情況 if (count != len(item)-1): # 該位置的數字為0,並且它的下一個數字非0。 if ((flag >= 1) and ('0' != item[count+1])): result += upper[n] else (0 != n): result += upper[n] else: # section的最後一個數字非0的情況。 if (0 != n): result += upper[n] # 最後一個數字以及數字為0時,都不需要新增單位。 if ((index >= 0) and (0 != n)): result += count_unit[index] index += 1 count += 1 從第1個section開始,如果section中的數字不全為0,其後就需要新增section對應的單位。 if (sec_index >= 0 and flag != count): result += section_unit[sec_index] dbg_print(result) sec_index -= 1 result = result.replace("壹拾", "拾") result += "元" return result # 轉換函式 def convert(num): result = "" num = round(float(num), 4) integer,decimal = str(num).split('.') result_int = convert_int(integer) result_dec = convert_dec(decimal) if (len(result_dec) == 0): result = result_int += "整" else: result = result_int + result_dec return result

相關推薦

python實現人民幣大寫轉換

#!/usr/bin/python # -*- coding:utf-8 -*- # ********* 轉換方法介紹 ********* # 將需要轉換的數字從右向左,每4位分成一個section,如:24530467103,將該數字拆分後,得到: # 24

java實現人民幣數字轉換中文大寫的工具例項程式碼demo分享

剛好在專案裡面用到了數字轉化為人民幣大寫,然後百度 谷歌了一番,最後寫了2個常用類,在這裡大家可以借鑑參考一下。先上圖: 這個是 第一個類  第二個類 好了 圖也上完了 下面就說一點區別,還是老樣子先看圖 有圖才有真相: 以上是 第一個類  下面看看

python 作業2:人民幣大寫轉換問題

題目描述:銀行在列印票據的時候,常常需要將阿拉伯數字表示的人民幣金額轉換為大寫表示,現在請你來完成這樣一個程式。在中文大寫方式中,0到10以及100、1000、10000被依次表示為: 零 壹 貳 叄 肆 伍 陸 柒 捌 玖 拾 佰 仟 萬以下的例子示範了阿拉伯數字到人

PHP ChineseUtil v1.1 新增中文數字、人民幣大寫轉換

   PHP 中文工具類 ChineseUtil,支援漢字轉拼音、拼音分詞、簡繁互轉、數字、金額大寫; 本類庫字典資料總共收錄 73925 個漢字,包括:3955 個簡體字,1761 個繁體字,68209 個其它漢字。 v1.1 更新內容 新增中文數字轉換、人民幣大寫轉換

JAVA如何實現人民幣大小寫轉換

package com.zzb.test0; import junit.framework.Assert; import org.junit.Test; /**  * 測試人民幣小寫轉大寫  * @author zhengzhb  */ public class UpperMoney {     public

python實現pdf格式轉換圖片格式

使用python程式碼實現pdf轉換圖片格式 核心程式碼: import io from wand.image import Image from wand.color import Color from PyPDF2 import PdfFileReader, PdfF

人民幣大寫轉換為數字

public class RMBUtils {          /**       * 中文中簡寫的漢字金額 經常使用       */       public static final String[] RMB_NUMBERS = new String[] { "一"

python 實現xml檔案轉換成txt文件

#!/usr/bin/evn python #coding: utf-8 import os,shutil import sys import xml.dom.minidom   reload(sys)   sys.setdefaultencoding('ut

人民幣數字大寫轉換 java實現 [附原始碼]

動機 業務系統開發的報表中經常需要將人民幣數值轉換為大寫,所以江蘇南大先騰java研發框架中寫了一個通用的大寫轉換函式。由於報表的數值一般比較大所以在java開發中不建議使用float或者int型別,請用BigDecimal型別,為了更加方便呼叫函式的引數使用

SSRS 實現數字金額轉換為中文大寫漢字

and pre lds 2.0 ber 部分 ima 中文 res 比如: 金額=49,701,120.00,將其轉換為“肆仟玖佰柒拾萬壹仟壹佰貳拾元整”;金額 289,546.52 ,轉換為 “貳拾捌萬玖仟伍佰肆拾陸元伍角貳分”。 解決方法:添加VB的轉換函數寫在CO

python實現中文轉換url編碼的方法

pos true clas url編碼 python 10.10 前端 美的 http 本文實例講述了python實現中文轉換url編碼的方法。分享給大家供大家參考,具體如下: 之前做上傳圖片編輯的時候,文件路勁中出現中文,會變成以下這種格式: http://192

python實現全角半角的相互轉換

ide 位置 gin 半個漢字 container python實現 shu image UC 在自然語言處理過程中,全角、半角的的不一致會導致信息抽取不一致,因此需要統一。 轉換說明 全角半角轉換說明 有規律(不含空格): 全角字符unicode編碼從65281~653

Python實現ParseDuration-支持解析字符串格式的時間單位,例如將小時或者分鐘數轉換為秒

AC let invalid python代碼 leading fig onf 字符 sca python的time模塊不支持單獨將字符串格式的分鐘數和小時數轉換為秒,比如將“5m”轉換為“300”(秒),不支持將“0.2h5.1m12.123s”轉換為“1038.123”

Python使用np.c_和np.r_實現數組轉換成矩陣

bubuko 矩陣 auth nbsp 轉換 ima TP 數組連接 python # -*- coding: utf-8 -*-"""Created on Sat Jun 30 14:49:22 2018 @author: zhen""" import numpy as

python實現DNA序列字符串轉換,互補鏈,反向鏈,反向互補鏈

seq string 子序列 ron 生物信息 一個 make quest 使用字符串 在生物信息學分析中,經常對DNA序列進行一系列操作,包括子序列截取,互補序列獲取,反向序列獲取,反向互補序列獲取。在python語言中,可編寫如下函數完成這些簡單功能。 子序

python 輸入一個字符,是小寫轉換大寫大寫轉換為小寫,其他字符原樣輸出

style pre clas input span pan NPU pri code s = input(‘請輸入一個字符:‘) if ‘a‘ <= s <= ‘z‘: print(chr(ord(s) - 32)) elif ‘A‘ <

Python實現:十進位制數與(2~16進位制數)之間的互相轉換

(最開始源於牛客網上的一道程式設計題 : [程式設計題] 數制轉換)   將X進位制轉為int十進位制的功能函式:(乘X次方各位數的加和法) # 將X進位制轉為int十進位制的功能函式:(乘X次方各位數的加和法) def XToInt(strNum,X): sum = 0

Python實現字串轉換成浮點型數字

使用Python實現float函式 from functools import reduce digits = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9} def cha

Python實現"轉換成小寫字母"的兩種方法

實現函式 ToLowerCase(),該函式接收一個字串引數 str,並將該字串中的大寫字母轉換成小寫字母,之後返回新的字串 Example 1: Input: "Hello" Output: "hello" Example 2: Input: "here" Ou

leetcode 將已排序的 陣列/連結串列 轉換為二叉搜尋樹(BST),Python實現

思路:不論是陣列還是連結串列,遞迴地找到他的root(即序列的中點),並返回。 1. 將陣列轉換為二叉樹: # Definition for a binary tree node. # class T