```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`会输出`壹拾贰万叁仟肆佰伍拾陆元柒角捌分`。