最近连续俩次遇到运算后数值精度丢失问题,所以记录一下。

问题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数值运算后精度丢失问题相关推荐

  1. js浮点数运算不精确 如何解决_解决 浏览器处理数字运算时精度丢失的方法

    浏览器处理数字运算时精度丢失的方法 为什么0.1 + 0.2 不等于0.3.因为计算机不能精确表示0.1, 0.2这样的浮点数,计算时使用的是带有舍入误差的数 并不是所有的浮点数在计算机内部都存在舍入 ...

  2. Java中double类型精度丢失的问题_double类型数据加减操作精度丢失解决方法_BigDecimal取整

    BigDecimal在用double做入参的时候,二进制无法精确地表示十进制小数,编译器读到字符串"0.0000002"和"1.0000002"之后,必须把它转 ...

  3. Java中BigDecimal解决精度丢失问题

    1.我们先看一个例子 可以看到在Java中进行浮点数运算的时候,会出现丢失精度的问题.那么我们如果在进行商品价格计算的时候,就会出现问题.很有可能造成我们手中有0.06元,却无法购买一个0.05元和一 ...

  4. java中double类型精度丢失问题及解决方法

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源: https://blog.csdn.net/yacolsp ...

  5. Java接口long类型精度丢失,解决前后端交互Long类型精度丢失问题

    雪花算法ID,对应的后端Long类型,前端number类型,它们的精度不一样,导致精度丢失 现象 雪花算法得到的ID较长,传到前端后,精度丢失 库中:23754851322302474 后端:2375 ...

  6. java int转float精度丢失问题

    前几天,看java核心卷上面有一句java的int转float会有精度丢失的问题, 第一次看的不太深入,最近又碰到了这个问题,就去深入的看了下. 建议一块看看这些(有助于理解下面的问题) 源码,反码, ...

  7. java数值运算divide_Java常用的计算机数字运算函数

    java中的数学计算函数 Math类:java.lang.Math类中包含基本的数字操作,如指数.对数.平方根和三角函数.java.math是一个包,提供用于执行任意精度整数(BigInteger)算 ...

  8. 小数乘以100后精度丢失

    如1.55*100会计算出1.54.9999999999995: 解决:const BigNumber = require("bignumber.js"); let sum = n ...

  9. 关于double与float精度丢失问题~看完我明白了☆

    今天刷面试题时,看到了(精度丢失)这个问题,今天来通过参考资料,把它总结一下 目录 ①<精度丢失>长什么样? ②为什么会精度丢失? ③用BigDecimal类解决精度丢失的问题 ①< ...

最新文章

  1. 如何用计算机猜数字,杭电2010计算机复试笔试题 2道acm简单题(2010):1.猜数字游戏;2.字符串提取数字并求和;...
  2. Fiddler中安装证书进行https协议的抓取
  3. STM32 ADC 同步规则模式 ADC1与ADC2同用一个DMA
  4. AD 批量修改漫游文件
  5. BZOJ-3473 (广义后缀自动机:拓扑 or 启发式合并)
  6. 2018 KubeCon + CloudNativeCon完美落幕,行云献力
  7. 【渝粤题库】广东开放大学 文化市场营销 形成性考核 (2)
  8. CNN常用卷积方法一览
  9. html 图片导出excel,用JavaScript导出图片到Excel
  10. 【转】一个小妙招能让你在服装上省下好多rmb
  11. 链表C语言和C++两种方式实现
  12. imac 蓝牙机械键盘_最好的蓝牙机械键盘
  13. html5手机app抽奖页面,app H5活动抽奖转盘 前端+后台
  14. 遥感影像处理2——目视解译
  15. django实现利用邮箱进行登录
  16. 云标签,关键字图排版 html5 canvas版
  17. mysql assoc什么意思_mysql_fetch_assoc 报错
  18. android miui连接开发者选项,(最详细)MIUI11系统的Usb调试模式在哪里开启的步骤
  19. 2019辽宁公务员考试:逻辑填空词语的“ 合并同类项”
  20. Matplotlib画动态散点图:

热门文章

  1. 基于Jquery+Ajax+Json+高效分页
  2. 解决Mac app store更新时[newNUllResponse]的问题
  3. PHP免费的空间www.hostinger.co.uk
  4. [转] 新入社員の自己紹介
  5. 最后一个社团换届的感谢和感悟
  6. 利用 Vmware 安装 Linux 虚拟机
  7. 自动化安装Cacti(1.0.1/2/3)脚本
  8. 云安全趋势下脚踏实地力拼网络危胁
  9. ruby 工程的创建 使用JetBrains RubyMine建立rails 工程
  10. instanceof 内部机制