编写一段java程序,实现从控制台中读取一个数字,然后打印出这个数字四舍五入后对应的人民币大写汉字字符。例如: 输入:3000 输出:叁仟 输入:300.569 输出:三佰元五角七分
时间: 2023-02-06 09:57:59 浏览: 81
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 从控制台读取一个数字
System.out.print("请输入一个数字:");
double number = scanner.nextDouble();
// 对数字进行四舍五入
long roundedNumber = Math.round(number);
// 将数字转换为人民币大写汉字字符
String rmb = convertToRMB(roundedNumber);
System.out.println(rmb);
}
// 将数字转换为人民币大写汉字字符的方法
public static String convertToRMB(long number) {
// 定义人民币大写汉字字符的数组
String[] rmbChars = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
// 定义人民币单位的数组
String[] rmbUnits = {"元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟"};
// 将数字转换为字符串
String strNumber = String.valueOf(number);
// 定义一个字符串缓冲区用于存储转换后的人民币大写汉字字符
StringBuilder sb = new StringBuilder();
// 遍历字符串
for (int i = 0; i < strNumber.length(); i++) {
// 获取字符串的每一位数字
int digit = strNumber.charAt(i) - '0';
// 在人民币大写汉字字符数组中获取对应的人民币大写汉字字符
String rmbChar = rmbChars[digit];
// 在人民币单位数组中获取对应的人民币单位
String rmbUnit = rmbUnits[strNumber.length() - i - 1];
// 将人民币大写汉字字符