以下是一段使用 Java 编写的程序,用于实现上述需求:
``` import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.Scanner;
public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); // 从控制台中读取一个数字 double num = scan.nextDouble(); // 将数字四舍五入 BigDecimal bd = new BigDecimal(num); double numRounded = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); // 将四舍五入后的数字格式化为人民币格式 DecimalFormat df = new DecimalFormat("#,##0.00"); String numStr = df.format(numRounded); // 调用函数将人民币格式的字符串转换为大写汉字 String numChinese = convertToChinese(numStr); // 打印输出 System.out.println(numChinese); }
public static String convertToChinese(String number) {
// 定义人民币大写汉字字符数组
String[] chinese = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
// 定义人民币单位字符数组
String[] units = {"元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟"};
StringBuilder result = new StringBuilder();
int length = number.length();
// 遍历字符串,按照人民币转换规则转换为大写汉字
for (int i = 0; i < length; i++) {
// 获取当前字符
char ch = number.charAt(i);
// 如果当前字符是数字,则转换为大写汉字
if (ch >= '0' && ch <= '9') {
int num = ch - '0';
result.append(chinese[num]);
// 如果当前字