java数值运算后精度丢失问题
最近连续俩次遇到运算后数值精度丢失问题,所以记录一下。
问题1:java计算百分比,应该得到57,可返回的就是56
在java代码中
BigDecimal progress;BigDecimal a = new BigDecimal(POF);BigDecimal b = new BigDecimal(RF);if(b.compareTo(a)==1&&b.subtract(a).longValue()<1000000){return 100;}progress = a.divide(b,2,BigDecimal.ROUND_UP);return progress*100 ;
这段代码的计算都是用BigDecimal运算的,这没什么问题。可惜啊!return progress*100 ; 功亏一篑!
BigDecimal progress;BigDecimal a = new BigDecimal(POF);BigDecimal b = new BigDecimal(RF);if(b.compareTo(a)==1&&b.subtract(a).longValue()<1000000){return 100;}progress = a.divide(b,2,BigDecimal.ROUND_UP); BigDecimal multiply = progress.multiply(new BigDecimal(100));return multiply.intValue();
问题二: 在jsp页面中对金额计算,0.00元竟然还带个负号
在java中测试
double浮点型,计算结果确实不是0,而是一个近似0的负数。
解决方案:
(由于我后台返回的数据都是保留小数点后两位,所以对运算数字先升级运算,再对结果降级处理)
累计其他 :{{$itzUtils.thousands(((dczqt*100-dczdcz*100)/100).toFixed(2))}}元</span>
转载于:https://www.cnblogs.com/caoyajun33-blog/p/8029299.html
java数值运算后精度丢失问题相关推荐
- js浮点数运算不精确 如何解决_解决 浏览器处理数字运算时精度丢失的方法
浏览器处理数字运算时精度丢失的方法 为什么0.1 + 0.2 不等于0.3.因为计算机不能精确表示0.1, 0.2这样的浮点数,计算时使用的是带有舍入误差的数 并不是所有的浮点数在计算机内部都存在舍入 ...
- Java中double类型精度丢失的问题_double类型数据加减操作精度丢失解决方法_BigDecimal取整
BigDecimal在用double做入参的时候,二进制无法精确地表示十进制小数,编译器读到字符串"0.0000002"和"1.0000002"之后,必须把它转 ...
- Java中BigDecimal解决精度丢失问题
1.我们先看一个例子 可以看到在Java中进行浮点数运算的时候,会出现丢失精度的问题.那么我们如果在进行商品价格计算的时候,就会出现问题.很有可能造成我们手中有0.06元,却无法购买一个0.05元和一 ...
- java中double类型精度丢失问题及解决方法
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源: https://blog.csdn.net/yacolsp ...
- Java接口long类型精度丢失,解决前后端交互Long类型精度丢失问题
雪花算法ID,对应的后端Long类型,前端number类型,它们的精度不一样,导致精度丢失 现象 雪花算法得到的ID较长,传到前端后,精度丢失 库中:23754851322302474 后端:2375 ...
- java int转float精度丢失问题
前几天,看java核心卷上面有一句java的int转float会有精度丢失的问题, 第一次看的不太深入,最近又碰到了这个问题,就去深入的看了下. 建议一块看看这些(有助于理解下面的问题) 源码,反码, ...
- java数值运算divide_Java常用的计算机数字运算函数
java中的数学计算函数 Math类:java.lang.Math类中包含基本的数字操作,如指数.对数.平方根和三角函数.java.math是一个包,提供用于执行任意精度整数(BigInteger)算 ...
- 小数乘以100后精度丢失
如1.55*100会计算出1.54.9999999999995: 解决:const BigNumber = require("bignumber.js"); let sum = n ...
- 关于double与float精度丢失问题~看完我明白了☆
今天刷面试题时,看到了(精度丢失)这个问题,今天来通过参考资料,把它总结一下 目录 ①<精度丢失>长什么样? ②为什么会精度丢失? ③用BigDecimal类解决精度丢失的问题 ①< ...
最新文章
- 如何用计算机猜数字,杭电2010计算机复试笔试题 2道acm简单题(2010):1.猜数字游戏;2.字符串提取数字并求和;...
- Fiddler中安装证书进行https协议的抓取
- STM32 ADC 同步规则模式 ADC1与ADC2同用一个DMA
- AD 批量修改漫游文件
- BZOJ-3473 (广义后缀自动机:拓扑 or 启发式合并)
- 2018 KubeCon + CloudNativeCon完美落幕,行云献力
- 【渝粤题库】广东开放大学 文化市场营销 形成性考核 (2)
- CNN常用卷积方法一览
- html 图片导出excel,用JavaScript导出图片到Excel
- 【转】一个小妙招能让你在服装上省下好多rmb
- 链表C语言和C++两种方式实现
- imac 蓝牙机械键盘_最好的蓝牙机械键盘
- html5手机app抽奖页面,app H5活动抽奖转盘 前端+后台
- 遥感影像处理2——目视解译
- django实现利用邮箱进行登录
- 云标签,关键字图排版 html5 canvas版
- mysql assoc什么意思_mysql_fetch_assoc 报错
- android miui连接开发者选项,(最详细)MIUI11系统的Usb调试模式在哪里开启的步骤
- 2019辽宁公务员考试:逻辑填空词语的“ 合并同类项”
- Matplotlib画动态散点图:
热门文章
- 基于Jquery+Ajax+Json+高效分页
- 解决Mac app store更新时[newNUllResponse]的问题
- PHP免费的空间www.hostinger.co.uk
- [转] 新入社員の自己紹介
- 最后一个社团换届的感谢和感悟
- 利用 Vmware 安装 Linux 虚拟机
- 自动化安装Cacti(1.0.1/2/3)脚本
- 云安全趋势下脚踏实地力拼网络危胁
- ruby 工程的创建 使用JetBrains RubyMine建立rails 工程
- instanceof 内部机制