关于转BigDecimal对象时,精度问题

        //浮点型数值Double d = 0.0003d;//转BigDecimal对象BigDecimal a = new BigDecimal(d);System.out.println(String.format("浮点类型数字:%.4f创建BigDecimal对象并且保留多位小数并且保留多位小数时,精度会变多,结果为%s",d,a.setScale(8, BigDecimal.ROUND_DOWN)));d = 0.0006d;a = new BigDecimal(d);System.out.println(String.format("浮点类型数字:%.4f创建BigDecimal对象并且保留多位小数时,精度会变多,结果为%s",d,a.setScale(8, BigDecimal.ROUND_DOWN)));d = 0.0007d;a = new BigDecimal(d);System.out.println(String.format("浮点类型数字:%.4f创建BigDecimal对象并且保留多位小数时,精度会变多,结果为%s",d,a.setScale(8, BigDecimal.ROUND_DOWN)));d = 0.0008d;a = new BigDecimal(d);System.out.println(String.format("浮点类型数字:%.4f创建BigDecimal对象并且保留多位小数时,精度会变多,结果为%s",d,a.setScale(8, BigDecimal.ROUND_DOWN)));d = 0.0009d;a = new BigDecimal(d);System.out.println(String.format("浮点类型数字:%.4f创建BigDecimal对象并且保留多位小数时,精度会变多,结果为%s",d,a.setScale(8, BigDecimal.ROUND_DOWN)));d = 0.001d;a = new BigDecimal(d);System.out.println(String.format("浮点类型数字:%.4f创建BigDecimal对象并且保留多位小数时,精度有时正常,结果为%s",d,a.setScale(8, BigDecimal.ROUND_DOWN)));d = 0.009d;a = new BigDecimal(d);System.out.println(String.format("浮点类型数字:%.4f创建BigDecimal对象并且保留多位小数时,精度会变多,结果为%s",d,a.setScale(8, BigDecimal.ROUND_DOWN)));d = 0.03d;a = new BigDecimal(d);System.out.println(String.format("浮点类型数字:%.4f创建BigDecimal对象并且保留多位小数时,精度会变多,结果为%s",d,a.setScale(8, BigDecimal.ROUND_DOWN)));d = 0.06d;a = new BigDecimal(d);System.out.println(String.format("浮点类型数字:%.4f创建BigDecimal对象并且保留多位小数时,精度会变多,结果为%s",d,a.setScale(8, BigDecimal.ROUND_DOWN)));d = 0.09d;a = new BigDecimal(d);System.out.println(String.format("浮点类型数字:%.4f创建BigDecimal对象并且保留多位小数时,精度会变多,结果为%s",d,a.setScale(8, BigDecimal.ROUND_DOWN)));d = 0.3d;a = new BigDecimal(d);System.out.println(String.format("浮点类型数字:%.4f创建BigDecimal对象并且保留多位小数时,精度会变多,结果为%s",d,a.setScale(8, BigDecimal.ROUND_DOWN)));d = 0.6d;a = new BigDecimal(d);System.out.println(String.format("浮点类型数字:%.4f创建BigDecimal对象并且保留多位小数时,精度会变多,结果为%s",d,a.setScale(8, BigDecimal.ROUND_DOWN)));d = 0.7d;a = new BigDecimal(d);System.out.println(String.format("浮点类型数字:%.4f创建BigDecimal对象并且保留多位小数时,精度会变多,结果为%s",d,a.setScale(8, BigDecimal.ROUND_DOWN)));d = 0.9d;a = new BigDecimal(d);System.out.println(String.format("浮点类型数字:%.4f创建BigDecimal对象并且保留多位小数时,精度会变多,结果为%s",d,a.setScale(8, BigDecimal.ROUND_DOWN)));//字符串类型数字String str = new String("0.0003");//转BigDecimal对象a = new BigDecimal(str);System.out.println(String.format("字符串类型数字:%s创建BigDecimal对象并且保留多位小数时,精度正常,结果为%s",str,a.setScale(8, BigDecimal.ROUND_DOWN)));str = new String("0.0006");a = new BigDecimal(str);System.out.println(String.format("字符串类型数字:%s创建BigDecimal对象并且保留多位小数时,精度正常,结果为%s",str,a.setScale(8, BigDecimal.ROUND_DOWN)));str = new String("0.9");a = new BigDecimal(str);System.out.println(String.format("字符串类型数字:%s创建BigDecimal对象并且保留多位小数时,精度正常,结果为%s",str,a.setScale(8, BigDecimal.ROUND_DOWN)));

使用字符串数值,转bigDecimal时,精度正常.

使用浮点型转bigDecimal时,有可能出现奇怪的数字.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/37310.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

format()方法——格式化字符串

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法介绍 format()可以对数据进行格式化处理操作,语法如下: format(value, format_spec) format_spec为格式化解释。当参数…

【计算机毕业设计】092基于微信小程序二手闲置交易市场

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

探索区块链:颠覆性技术的崛起

目录 一、引言 二、区块链技术概述 三、区块链应用场景 四、区块链面临的挑战 五、区块链的未来展望 六、结语 一、引言 在数字化浪潮的推动下,区块链技术以其独特的去中心化、透明性和不可篡改性等特性,正在逐步改变我们的生活。从金融领域到供应…

基于Java的茶文化交流系统【附源码+LW】

摘 要 计算机网络发展到现在已经好几十年了,在理论上面已经有了很丰富的基础,并且在现实生活中也到处都在使用,可以说,经过几十年的发展,互联网技术已经把地域信息的隔阂给消除了,让整个世界都可以即时通话…

MySQL数据库存储引擎

MySQL数据库存储引擎 存储引擎概念 存储引擎也称为表类型 通过不同的技术比如说,存储机制,索引技巧,锁定水平等等,来提供不同的功能。 查看MySQL支持的存储引擎 show engines\G; 常用引擎比较 对事务有需求 innodb …

TiDB-从0到1-数据导出导入

TiDB从0到1系列 TiDB-从0到1-体系结构TiDB-从0到1-分布式存储TiDB-从0到1-分布式事务TiDB-从0到1-MVCCTiDB-从0到1-部署篇TiDB-从0到1-配置篇TiDB-从0到1-集群扩缩容 一、数据导出 TiDB中通过Dumpling来实现数据导出,与MySQL中的mysqldump类似,其属于…

JavaWeb——MySQL:navicate客户端工具简单使用

目录 1. 连接 2. 新建数据库 3. 使用数据库 4. 新建表 5.使用表 6. 导出数据库 我这里是英文版,没有进行汉化。 1. 连接 点击左上角Connection,选择MySQL,(我连接的是自己计算机上的数据库)连接名输入&#x…

抖音开放平台运营同学联系我了,非常感谢

大家好,我是小悟 是怎么个事呢? 前几天在对接抖音开放平台,服务商代开发小程序里面的小程序备案,上传备案图片接口遇到了问题,具体的问题可详阅【抖音开放平台,这谁写的,要扣绩效吧】。 评论…

Java编程基本功大揭秘 | 详解深入分析Java线程池源码和底层原理,掌握实战技巧【1】

详解深入分析Java线程池源码和底层原理 文章大纲引言Java线程池概念及重要性 ThreadPoolExecutor类的概述ThreadPoolExecutor类的基本功能和作用**基本功能****核心作用** ThreadPoolExecutor主要构造函数及其参数继承关系链功能介绍ThreadPoolExecutor 构造器构造器参数构造器…

破解对LabVIEW的偏见

LabVIEW被广泛应用于科学研究、工程测试和自动化控制领域,具有专业性和高效的开发能力。尽管有人对其存在偏见,认为不如C语言,但LabVIEW的图形化编程、强大集成能力、丰富社区支持和专业功能,使其在许多实际应用中表现出色。通过多…

Go语言环境安装

Go下载地址 哪个能用用哪个。 https://go.dev/ https://golang.google.cn/(Golang官网的官方镜像) Windows 使用.msi安装包安装 下载msi文件 安装 双击运行go1.22.4.windows-amd64.msi Next 勾选I accept the terms in the License Agreement&…

收藏 | SSL证书无效的原因和解决办法

当浏览器访问一个使用SSL证书保护的网站时,会检查其证书的有效性。如果发现证书存在问题,浏览器会显示“SSL证书无效”的警告信息,提醒用户存在潜在的安全风险。 “SSL证书无效”的警告可能会导致用户离开站点(并且永远不会返回&…

MySQL高级-SQL优化-小结

文章目录 1、insert 优化2、主键优化3、order by 优化4、group by 优化5、limit 优化6、count 优化7、update 优化 1、insert 优化 insert:批量插入、手动控制事务、主键顺序插入 大批量插入:load data local infile 2、主键优化 主键长度尽量短、顺序插…

系统漏洞复现与勒索病毒

知识点:SMB漏洞介绍、漏洞复现流程、勒索病毒攻击与防护 渗透测试相关: 基本概念: 渗透测试就是利用我们所掌握的渗透知识,对网站进行一步一步的渗透,发现其中存在的漏洞和隐藏的风险,然后撰写一篇测试报…

FastAPI教程I

本文参考FastAPI教程https://fastapi.tiangolo.com/zh/tutorial 第一步 import uvicorn from fastapi import FastAPIapp FastAPI()app.get("/") async def root():return {"message": "Hello World"}if __name__ __main__:uvicorn.run(&quo…

elementUI的搭建使用过程

Element - The worlds most popular Vue UI framework 上面是elementUI的网站,进入网站 点击右上角的组件按钮 复制这段代码到你的项目终端:npm i element-ui -S 加载完成后即可使用elementUI网站中的组件,使用它们只需要复制组件下面的代码即可

Unity UGUI 实现简单两点连线功能

实现 记录鼠标点击位置为线段起点。 posStart Input.mousePosition; 创建一个Image 作为线段。 line new GameObject("line"); rtLine line.AddComponent<RectTransform>(); rtLine.pivot new Vector2(0, 0.5f); rtLine.localScale Vector3.one; img…

在操作系统中,background通常指的是运行于后台的进程或任务

在计算机中&#xff0c;"background"一词具有多种含义&#xff0c;以下是一些主要的解释和相关信息&#xff1a; 计算机视觉中的背景&#xff08;Background&#xff09;&#xff1a; 在计算机视觉中&#xff0c;background指的是图像或视频中的背景部分&#xff0c;…

IOS17闪退问题Assertion failure in void _UIGraphicsBeginImageContextWithOptions

最近项目更新到最新版本IOS17&#xff0c;发现一个以前的页面突然闪退了。原来是IOS17下&#xff0c;这个方法 UIGraphicsBeginImageContext(CGSize size) 已经被移除&#xff0c;原参数如果size为0的话&#xff0c;会出现闪退现象。 根据说明&#xff0c;上述方法已经被替换…

【shell脚本速成】python安装脚本

文章目录 案例需求应用场景解决问题脚本思路案例代码 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f388;欢迎踏入我的博客世界&#xff0c;能与您在此邂逅&#xff0c;真是缘分使然&#xff01;&#x1f60a; &#x1f338;愿您在此停留的每一刻&#xff0c;都沐…