2301_76317690 2023-08-14 17:09 采纳率: 92.3%
浏览 5
已结题

初学者的除法问题求详细的解答!

就是我直接
注意看:我直接System.out.println(10.0/3.0)
为什么运算的结果为3.33333335啊有人注意到没有。。
自己算并且计算器给出的运算结果不应该是3.3333333吗?
明白会丢失小数点但小数点无限为3的话,我就算四舍五入,那也应该是3.333333333吧。为啥.5
希望有牛人解释一波。
而且我就要求保留小数3.33333333怎么办??

  • 写回答

6条回答 默认 最新

  • CSDN专家-sinJack 2023-08-14 18:13
    关注

    由于浮点数的内部表示方式是二进制的,而不是十进制的,所以在进行浮点数运算时,可能会存在舍入误差。
    10除以3的结果是一个无限循环的十进制小数3.333333333333333...。然而,由于浮点数的精度有限,Java只能表示一个近似的值。因此,结果被舍入为3.3333335,而不是3.3333334。
    这种舍入误差是浮点数运算中常见的现象,特别是在进行复杂的数学计算时。
    Java 中处理精度丢失,常用BigDecimal类来处理精度丢失问题,提供了基础的四则运算等方法。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 8月22日
  • 已采纳回答 8月14日
  • 修改了问题 8月14日
  • 修改了问题 8月14日
  • 展开全部