分享一个JDK1.8丢失数字精度的案例
2024-10-21 18:31:36
差异出现在 DigitList.java的 round() 方法处理上:
1.6:
1.8:
根据设置规则消除无需显示的数字时,JDK1.8 新增了一个二进制数向ASCII码转换的过程如下:
从而导致拿到的取舍后的数字出现了区别:
JDK官方文档也曾指出:Float和Double类型的数据在进行计算式,可能会存在精度的丢失,所以推荐如下方式可以规避1.8版本四舍六入的问题:
测试结果:
最新文章
- 山寨Unity3D?搜狐畅游的免费开源游戏引擎Genesis-3D
- 使用github之前的技能准备
- Android原生(Native)C开发之一:环境搭建篇
- 分组背包——sicily 1750
- C#的库存管理之旅的别样意义
- jQuery源代码学习之七—队列模块queue
- 疑难杂症:NoSuchMethodError: com.opensymphony.xwork2.util.finder.UrlSet.includeClassesUrl(Lcom/opensymphony/xwork2/util/finder/ClassLoaderInterface;)
- [转]如何下载tizen源码(图文教程)?
- python学习第四天第一部分
- 《一步一步写嵌入式操作系统》读书笔记1—Skyeye介绍、安装和HelloWorld
- C标准库函数实现之strstr(转)
- [HDU 2068] RPG的错排 (错排问题)
- ie下面兼容性问题的一些总结
- 为什么struts2 ajax 方法执行两次
- 【模拟】【HDU1443】 Joseph
- php定时自动执行 需启动第一次
- mysqldump备份表中有大字段失败的排错过程
- django_admin用法
- yarn 切换 设置 镜像 源
- js样式之渐变线