java中除法结果不对。
今天遇一个非常简单地计算,计算结果居然是不对0,查了一些前辈们的资料动手实验了一下,实验结果和代码分享给大家。需要计算的公式:(7/10)*0.8 结果居然不是0.56 而是 0,最后找到原因(7/10)*0.8 这个公式中 ,问题出在7/10 两个整数相除,结果只取整数部分所以 7/10的结果是0, 导致整个计算结果不对。实验结果中还可以看到double类型的精度丢失问题,这个不在这里讨论,百度一下就知道原因了。
代码如下:
public static void main(String[] args) { System.out.println("问题:"+(7/10)*0.8); double money = (7/10)*0.8; System.out.println("精度缺失1:"+money); double money1 = 0.7*0.8; System.out.println("精度缺失2:"+money1); double temp = 7; double money2 = (temp/10)*0.8; System.out.println("精度缺失3:"+money2); double temp1 = 10; double money3 = (7/temp1)*0.8; System.out.println("精度缺失3:"+money3); //两个整数相除 System.out.println("关键的问题1:"+7/10); //两个整数相除 System.out.println("关键的问题2:"+19/10); //两个整数相除 System.out.println("关键的问题3:"+12/10); }
输出的结果如下:
问题:0.0
精度缺失1:0.0
精度缺失2:0.5599999999999999
精度缺失3:0.5599999999999999
精度缺失3:0.5599999999999999
关键的问题1:0
关键的问题2:1
关键的问题3:1
资源丰富的的网盘资源:网盘资源大全! 推荐一个适合零基础学习SQL的网站:不用安装数据库,在线轻松学习SQL!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2021-08-11 Xmanager连接linux服务器的桌面
2021-08-11 二、金仓数据库搭建(主从安装)
2021-08-11 二、达梦8数据库搭建(主从安装)