问题:

java的运算中,你可能遇到过以下问题

double a = 0.012;

double b = 0.103;

double c;

c = a+b;

(c的结果可能为0.1150001)

这是由于运算过程中,丢失了精度的原因

我们可以用BigDecimal类解决这一类问题

public double GetResult(double numA, double numB, String operate){
        double res = 0;
        BigDecimal bigA = new BigDecimal(Double.toString(numA));
        BigDecimal bigB = new BigDecimal(Double.toString(numB));
        switch (operate) {
            
            case "+":
                res = bigA.add(bigB).doubleValue();
                break;
            case "-":
                res = bigA.subtract(bigB).doubleValue();
                break;
            case "*":
                res = bigA.multiply(bigB).doubleValue();
                break;
            case "/":
                res = bigA.divide(bigB).doubleValue();
                break;
            default :
                System.out.println("运算符不合法~");
                break;
        }
        return res;
    }

这样运算后,便不会存在丢失精度的问题

java 不丢失精度运算相关推荐

  1. java小数丢失精度_Java中的小数运算与精度损失

    float.double类型的问题 我们都知道,计算机是使用二进制存储数据的.而平常生活中,大多数情况下我们都是使用的十进制,因此计算机显示给我们看的内容大多数也是十进制的,这就使得很多时候数据需要在 ...

  2. java double丢失精度问题,加减乘除计算出错出现99999

    问题一 原理:在使用double计算时,经常会存在精度丢失,总是在一个正确的结果左右偏0.0000**1,经常会因为精度丢失而导致程序处理流程出错.所有在进行财务相关计算时,需要使用BigDecima ...

  3. 计算价格, java中浮点数精度丢失的解决方案

    计算价格, java中浮点数精度丢失的解决方案 转载于:https://www.cnblogs.com/gloryhope/p/9896719.html

  4. java long double精度丢失_long long类型转double类型部分精度丢失问题

    我最近做了一道题,一个64位(unsigned __int64)范围内的数输出其除以1000的值,并按四舍五入保留小数点后三位. 我刚开始直接写WA,结果发现当数比较大的时候,结果后几位精度总会丢失, ...

  5. 面试:BigDecimal一定不会丢失精度吗?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源 | urlify.cn/ZVN7Nb 我们基本已经形成了常识 ...

  6. 面试官:BigDecimal一定不会丢失精度吗?

    都知道Double会丢失精度,BigDecimal就不会么?希望你会正确使用! 我们基本已经形成了常识,需要用到金钱的地方要用 BigDecimal 而不是其他,而我们也都知道浮点型变量在进行计算的时 ...

  7. 面试官:BigDecimal 一定不会丢失精度吗?

    前言 我们都知道浮点型变量在进行计算的时候会出现丢失精度的问题.如下一段代码: System.out.println(0.05 + 0.01); System.out.println(1.0 - 0. ...

  8. 前端参数无法转为后端实体内部类_Spring Boot返回前端Long型丢失精度

    最近为Prong开发了一个基于snowflake算法的Java分布式ID组件,将实体主键从原来的String类型的UUID修改成了Long型的分布式ID.修改后发现前端显示的ID和数据库中的ID不一致 ...

  9. Spring Boot返回前端Long型丢失精度

    最近为Prong开发了一个基于snowflake算法的Java分布式ID组件,将实体主键从原来的String类型的UUID修改成了Long型的分布式ID.修改后发现前端显示的ID和数据库中的ID不一致 ...

  10. java中的算数运算符号用法与原理分析

    一.表达式求值简单说明: 1.求值表达式主要包括加减乘除四种基本运算,其实表达式可以看做由一个个二元运算构成,前一个二元运算的结果作为后一个二元运算的输入. 举个例子: "1+2-4=&qu ...

最新文章

  1. 洛谷 P5057 [CQOI2006]简单题(树状数组)
  2. 空域滤波算法对比分析(超级全面哒)——Python代码
  3. vue 写兼容ios的毫秒级刷新时间戳
  4. TI PDK3.0 qt 交叉编译环境设置
  5. 不要以为用了云,就不要运维
  6. To Noob Json是什么鬼?
  7. linux渗透测试_渗透测试:选择正确的(Linux)工具栈来修复损坏的IT安全性
  8. ANDROID笔记:Activity之间的传值
  9. Centos7.5安装redis
  10. 使用Unity和A*插件实现LoL英雄联盟中的移动方式
  11. Java语言程序设计D实验——类与对象实验
  12. 元器件_封装库_命名规范
  13. 可视化 | Python电影Top250数据可视化
  14. 全文搜索引擎ElasticSearch
  15. java中国象棋棋盘放置棋子,Qt中国象棋二——棋盘与棋子的绘制
  16. ETL-kettle/pentaho的二次开发
  17. python re import_完全搞懂Python 中的 import 与 from import
  18. 计算机与仪表电缆,计算机与仪表电缆
  19. 多方面看IP地址与常见的端口号~华山论剑
  20. #![feature]` may not be used on the stable release channel 问题解决及设置Rust Channel的三种方式

热门文章

  1. Github 常见缩写含义 WIP/LGTM/AFAIK
  2. java base64 包_Java实现BASE64编解码
  3. Matlab如何提取fig文件中的数据
  4. 如何使用Win10原生的截图工具Snipping Tool?
  5. python中将字符变为大写_python3.4.3将汉字转换为大写拼音首字母
  6. win10上运行ROS时报:qt.qpa.plugin:Cound not find the Qt platform plugin “windows“
  7. 小米笔记本触摸板失灵问题
  8. abs在c 语言中的作用是什么意思,abs什么意思 c语言中abs是什么意思
  9. 2022年基于PXI/PCI/PCIe/USB总线的高速数据采集卡汇总
  10. android中pdf转换成图片格式,Android-PDF转图片