1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > python数字大小写转换代码_用python实现把数字人民币金额转换成大写的脚本程序...

python数字大小写转换代码_用python实现把数字人民币金额转换成大写的脚本程序...

时间:2023-10-16 10:22:25

相关推荐

python数字大小写转换代码_用python实现把数字人民币金额转换成大写的脚本程序...

# -*- coding: utf-8 -*-

def Num2MoneyFormat( change_number ):

"""

.转换数字为大写货币格式( format_word.__len__() - 3 + 2位小数 )

change_number 支持 float, int, long, string

"""

format_word = ["分", "角", "元",

"拾","百","千","万",

"拾","百","千","亿",

"拾","百","千","万",

"拾","百","千","兆"]

format_num = ["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"]

if type( change_number ) == str:

# - 如果是字符串,先尝试转换成float或int.

if '.' in change_number:

try: change_number = float( change_number )

except: raise ValueError, '%s can\'t change'%change_number

else:

try: change_number = int( change_number )

except: raise ValueError, '%s can\'t change'%change_number

if type( change_number ) == float:

real_numbers = []

for i in range( len( format_word ) - 3, -3, -1 ):

if change_number >= 10 ** i or i < 1:

real_numbers.append( int( round( change_number/( 10**i ), 2)%10 ) )

elif isinstance( change_number, (int, long) ):

real_numbers = [ int( i ) for i in str( change_number ) + '' ]

else:

raise ValueError, '%s can\'t change'%change_number

zflag = 0 #标记连续0次数,以删除万字,或适时插入零字

start = len(real_numbers) - 3

change_words = []

for i in range(start, -3, -1): #使i对应实际位数,负数为角分

if 0 <> real_numbers[start-i] or len(change_words) == 0:

if zflag:

change_words.append(format_num[0])

zflag = 0

change_words.append( format_num[ real_numbers[ start - i ] ] )

change_words.append(format_word[i+2])

elif 0 == i or (0 == i%4 and zflag < 3): #控制 万/元

change_words.append(format_word[i+2])

zflag = 0

else:

zflag += 1

if change_words[-1] not in ( format_word[0], format_word[1]):

# - 最后两位非"角,分"则补"整"

change_words.append("整")

return ''.join(change_words)

print Num2MoneyFormat( 343.45 )

运行结果:叁百肆拾叁元肆角伍分

C&num;小写数字金额转换成大写人民币金额的算法

C#小写数字金额转换成大写人民币金额的算法 第一种方法: using System.Text.RegularExpressions;//首先引入命名空间 private string DaXie(st ...

SQL函数:小写金额转换成大写

/********************************************************作者:版本:1.0创建时间:2007修改时间:功能:小写金额转换成大写参数:n ...

ABAP 金额转换成大写

FUNCTIONzzfi_change_amount.*"---------------------------------------------------------------- ...

irport报表,把数字金额转换成大写人民币金额

1.编写oracle函数 CREATE OR REPLACE Function MoneyToChinese(Money In Number) Return Varchar2 Is strYuan ) ...

jquery 金额转换成大写

JavaScript将小写金额转换成大写

//num为小写金额,单位元 changeMoney(num) { if(isNaN(num))return ""; var strPrefix=""; if( ...

JavaScript将输入的数字金额转换成对应的中文大写金额

// 将输入的数字金额转换成对应的中文大写金额 // idNumber输入的数字金额,idCHN输出的中文大写金额 function TransformNumberIntoCHN(idNumber, ...

【PHP】金额数字转换成大写形式

<?php /*将数字金额转成大写*/ function num_to_upper($num) { $d = array('零','壹','贰','叁','肆','伍','陆','柒','捌', ...

PHP算法--将数字金额转换成大写金额

最近在看一些PHP算法题,遇到一个将数字金额转换成大写金额的小算法题,这里贴出自己的一个例子. 注:这个小算法适用于10万以内的金额. <?php //$num = 12345.67; func ...

随机推荐

获取Windows操作系统的CPU使用率以及内存使用率

此功能参考了ProcessHacker项目的代码. 声明定义 typedef struct _UINT64_DELTA { ULONG64 Value; ULONG64 Delta; } UINT64 ...

MySQL提示&colon;The server quit without updating PID file问题的解决办法(转载)

MySQL提示:The server quit without updating PID file问题的解决办法 今天网站web页面提交内容到数据库,发现出错了,一直提交不了,数找了下原因,发现数据写 ...

C预处理和C库

#include #define MAN(x) "n"##x int main(void) { printf("%s",MAN( ...

Creating a SharePoint BCS &period;NET Connectivity Assembly to Crawl RSS Data in Visual Studio

from://07/18/creating-a-sharepoint-bcs-net-assembly-connector-to-crawl-rss ...

hbase 新增节点

关于Hbase的集群管理 /Linux/-07/65909.htm 1.如果只增加集群的存储量,建议增加Hadoopdatanode节点. 方法 ...

Linux命令-wc

wc命令用于统计指定文本的行数.字数.字节数 格式:wc[参数]文本 [root@localhost test]# wc test.txt test.txt [root@localhost tes ...

JavaScript操作DOM的那些坑

js在操作DOM中存在着许多跨浏览器方面的坑,本文花了我将近一周的时间整理,我将根据实例整理那些大大小小的“坑”. DOM的工作模式是:先加载文档的静态内容.再以动态方式对它们进行刷新,动态刷新不影响 ...

UVa 10129 &lpar;并查集 &plus; 欧拉路径&rpar; Play on Words

题意: 有n个由小写字母的单词,要求判断是否存在某种排列使得相邻的两个单词,前一个单词末字母与后一个单词首字母相同. 分析: 将单词的两个字母看做节点,则一个单词可以看做一条有向边.那么题中所求的排列 ...

Linux学习笔记2

1.系统引导配置文件 # vi /boot/grub/grub.conf default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm. ...

linq 的Distinct 扩展方法&period;

List classs = new List(); classs.Add(new miniclass() { token = &qu ...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。