气愤的大马猴 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 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据