气愤的大马猴 2022-09-16 08:17 采纳率: 100%
浏览 92
已结题

Java随即四则运算一百道,除法运算结果要四舍五入除数还不能为零,四舍五入总运行不出来,如何解决?

问题遇到的现象和发生背景

除法运算结果要四舍五入还不能为零,四舍五入总运行不出来

运行结果及报错内容

img

我想要达到的结果

一百道四则运算最后还要在结尾附带结果,怎么解决哇

img

  • 写回答

6条回答 默认 最新

  • Java大魔王 2022-09-16 10:47
    关注
    
    import java.math.BigDecimal;
    import java.util.Random;
     
    public class Cal {
     
        public static void main(String args[]) {
            
            String[] formulaArr = new String[100];
            String[] resultArr = new String[100];
            
            for(int i=0; i<100; i++) {
                int numOne = getNum();
                String symbol = getSymbol();
                int numTwo = getNum();
                formulaArr[i] = numOne + symbol + numTwo + "=";
                resultArr[i] = getResult(numOne, symbol, numTwo);
            }
            
            for(int i=1; i<=100; i++) {
                if(i % 10 != 0) {
                    System.out.print(formulaArr[i-1] + "  ");
                }else {
                    System.out.println(formulaArr[i-1]);
                }
            }
            
            System.out.println("正确答案");
            
            for(int i=1; i<=100; i++) {
                if(i % 10 != 0) {
                    System.out.print(resultArr[i-1] + "  ");
                }else {
                    System.out.println(resultArr[i-1]);
                }
            }
            
        }
        
        public static int getNum() {
            return (int)(Math.random()*(99))+1;
        }
        
        public static String getSymbol() {
            String[] symbolArr = new String[]{"+", "-", "*", "/"};
            int index = new Random().nextInt(symbolArr.length);
            return symbolArr[index];
        }
        
        public static String getResult(int numOne, String symbol, int numTwo) {
            switch (symbol) {
                case "+":
                    return String.valueOf(numOne + numTwo);
                case "-":
                    return String.valueOf(numOne - numTwo);
                case "*":
                    return String.valueOf(numOne * numTwo);
                case "/":
                    BigDecimal rs = new BigDecimal(numOne).divide(new BigDecimal(numTwo), 2, BigDecimal.ROUND_HALF_UP);
                    return String.valueOf(rs);
                default:
                    return "error";
            }
        }
        
    }
     
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 9月24日
  • 已采纳回答 9月16日
  • 赞助了问题酬金10元 9月16日
  • 创建了问题 9月16日

悬赏问题

  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?
  • ¥15 讲解电路图,付费求解
  • ¥15 有偿请教计算电磁学的问题涉及到空间中时域UTD和FDTD算法结合的
  • ¥15 three.js添加后处理以后模型锯齿化严重
  • ¥15 vite打包后,页面出现h.createElement is not a function,但本地运行正常