1 '''
2 人民币数字转大写汉字3 '''
4
5 #coding: utf-8
6 importwarnings7 from decimal importDecimal8
9 def cncurrency(value, capital=True, prefix=False, classical=None):10 '''
11 参数:12 capital: True 大写汉字金额13 False 一般汉字金额14 classical: True 元15 False 圆16 prefix: True 以'人民币'开头17 False, 无开头18 '''
19 if notisinstance(value, (Decimal, str, int)):20 msg = '''
21 由于浮点数精度问题,请考虑使用字符串,或者 decimal.Decimal 类。22 因使用浮点数造成误差而带来的可能风险和损失作者概不负责。23 '''
24 warnings.warn(msg, UserWarning)25 #默认大写金额用圆,一般汉字金额用元
26 if classical isNone:27 classical = True if capital elseFalse28
29 #汉字金额前缀
30 if prefix isTrue:31 prefix = '人民币'
32 else:33 prefix = ''
34
35 #汉字金额字符定义
36 dunit = ('角', '分')37 ifcapital:38 num = ('零', '壹