编写一段java程序,实现从控制台中读取一个数字,然后打印出这个数字四舍五入后对应的人民币大写汉字字符。例如: 输入:3000 输出:叁仟 输入:300.569 输出:三佰元五角七分
时间: 2023-03-11 14:01:36 浏览: 181
以下是编写 Java 程序的示例代码:
```
import java.math.BigDecimal;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 定义人民币大写汉字数组
String[] hanArr = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
String[] unitArr = {"拾", "佰", "仟"};
// 从控制台中读取输入
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个数字:");
String numStr = scanner.nextLine();
// 将输入的字符串转换为 BigDecimal 类型
BigDecimal num = new BigDecimal(numStr);
// 四舍五入,保留两位小数
BigDecimal roundNum = num.setScale(2, BigDecimal.ROUND_HALF_UP);
// 将四舍五入后的数字转换为字符串,用于解析数位
String roundNumStr = roundNum.toString();
// 定义一个 StringBuilder 类型的变量,用于拼接人民币大写汉字字符
StringBuilder sb = new StringBuilder();
// 循环遍历字符串的每一位数字
for (int i = 0; i < roundNumStr.length(); i++) {
// 获取字符串中的每一位数字
char c = roundNumStr.charAt(i);
// 如果是小数点,则直接拼接元
if (c == '.') {
sb.append("元");
} else {
// 将字符转换为数字
int index = Integer.parseInt(String.valueOf(c));
// 拼接人民币大写汉字字符
sb.append(hanArr[index]);
// 如果不是个位数,则拼接单位(拾、佰、仟)
阅读全文