课后作业2

用 double 计算 “3.2 - 2.7”,结果居然是 0.4999999999999999,而非 0.5。查了底层原理才明白,double 是二进制浮点数,计算机只能用二进制存储数据。但像 0.1 这样的十进制小数,转化为二进制是无限循环的,存储时会截断,导致计算累积误差,自然得不到精确结果。后来换成 BigDecimal 类,指定精度模式,才算解决了问题。
接着琢磨用 Java 做小学生每日 30 道四则运算题的程序。这个问题得拆开来算时间:需求分析 10 分钟,明确要随机生成 1-50 的整数、避免负数和除不尽的情况;核心逻辑开发 40 分钟,用 Random 生成数据、switch 控制运算符、加条件判断过滤无效题;格式优化 20 分钟,给题目编号、控制排版;测试调试 15 分钟,修复了乘法结果溢出的小 bug。算下来总共 1 小时 25 分钟,要是后续加界面,时间得再翻倍。

posted @ 2025-09-27 21:17  F1yy  阅读(14)  评论(0)    收藏  举报