人民币大写生成器

admin 外汇 1

```python

def convert_to_chinese_number(num):

chinese_digits = '零壹贰叁肆伍陆柒捌玖'

return chinese_digits[num]

def convert_to_chinese_unit(unit):

chinese_units = ['', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿']

return chinese_units[unit]

def convert_to_chinese_currency(amount):

if not isinstance(amount, (int, float)):

raise ValueError("Amount must be an integer or float.")

if amount < 0:

return "负"

if amount == 0:

return "零元整"

分离整数部分和小数部分

integer_part = int(amount)

decimal_part = int((amount integer_part) 100)

转换整数部分

if integer_part == 0:

integer_part_str = "零"

else:

integer_part_str = ""

str_integer_part = str(integer_part)

length = len(str_integer_part)

for i, digit in enumerate(str_integer_part):

digit = int(digit)

if digit != 0:

integer_part_str += convert_to_chinese_number(digit)

integer_part_str += convert_to_chinese_unit(length i 1)

else:

if not (i == length 1 and digit == 0):

integer_part_str += "零"

转换小数部分

if decimal_part == 0:

decimal_part_str = ""

else:

decimal_part_str = "元"

for i, digit in enumerate(str(decimal_part)):

digit = int(digit)

decimal_part_str += convert_to_chinese_number(digit)

decimal_part_str += convert_to_chinese_unit(i + 1)

组合整数部分和小数部分

if decimal_part == 0:

return integer_part_str + "元整"

else:

return integer_part_str + decimal_part_str

示例使用

amount = 123456.78

chinese_amount = convert_to_chinese_currency(amount)

print(chinese_amount)

```

这段代码定义了一个函数`convert_to_chinese_currency`,它接受一个金额(可以是整数或浮点数),并返回相应的人民币大写金额。例如,输入`123456.78`会输出`壹拾贰万叁仟肆佰伍拾陆元柒角捌分`。