java 不丢失精度运算
问题:
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 不丢失精度运算相关推荐
- java小数丢失精度_Java中的小数运算与精度损失
float.double类型的问题 我们都知道,计算机是使用二进制存储数据的.而平常生活中,大多数情况下我们都是使用的十进制,因此计算机显示给我们看的内容大多数也是十进制的,这就使得很多时候数据需要在 ...
- java double丢失精度问题,加减乘除计算出错出现99999
问题一 原理:在使用double计算时,经常会存在精度丢失,总是在一个正确的结果左右偏0.0000**1,经常会因为精度丢失而导致程序处理流程出错.所有在进行财务相关计算时,需要使用BigDecima ...
- 计算价格, java中浮点数精度丢失的解决方案
计算价格, java中浮点数精度丢失的解决方案 转载于:https://www.cnblogs.com/gloryhope/p/9896719.html
- java long double精度丢失_long long类型转double类型部分精度丢失问题
我最近做了一道题,一个64位(unsigned __int64)范围内的数输出其除以1000的值,并按四舍五入保留小数点后三位. 我刚开始直接写WA,结果发现当数比较大的时候,结果后几位精度总会丢失, ...
- 面试:BigDecimal一定不会丢失精度吗?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源 | urlify.cn/ZVN7Nb 我们基本已经形成了常识 ...
- 面试官:BigDecimal一定不会丢失精度吗?
都知道Double会丢失精度,BigDecimal就不会么?希望你会正确使用! 我们基本已经形成了常识,需要用到金钱的地方要用 BigDecimal 而不是其他,而我们也都知道浮点型变量在进行计算的时 ...
- 面试官:BigDecimal 一定不会丢失精度吗?
前言 我们都知道浮点型变量在进行计算的时候会出现丢失精度的问题.如下一段代码: System.out.println(0.05 + 0.01); System.out.println(1.0 - 0. ...
- 前端参数无法转为后端实体内部类_Spring Boot返回前端Long型丢失精度
最近为Prong开发了一个基于snowflake算法的Java分布式ID组件,将实体主键从原来的String类型的UUID修改成了Long型的分布式ID.修改后发现前端显示的ID和数据库中的ID不一致 ...
- Spring Boot返回前端Long型丢失精度
最近为Prong开发了一个基于snowflake算法的Java分布式ID组件,将实体主键从原来的String类型的UUID修改成了Long型的分布式ID.修改后发现前端显示的ID和数据库中的ID不一致 ...
- java中的算数运算符号用法与原理分析
一.表达式求值简单说明: 1.求值表达式主要包括加减乘除四种基本运算,其实表达式可以看做由一个个二元运算构成,前一个二元运算的结果作为后一个二元运算的输入. 举个例子: "1+2-4=&qu ...
最新文章
- 洛谷 P5057 [CQOI2006]简单题(树状数组)
- 空域滤波算法对比分析(超级全面哒)——Python代码
- vue 写兼容ios的毫秒级刷新时间戳
- TI PDK3.0 qt 交叉编译环境设置
- 不要以为用了云,就不要运维
- To Noob Json是什么鬼?
- linux渗透测试_渗透测试:选择正确的(Linux)工具栈来修复损坏的IT安全性
- ANDROID笔记:Activity之间的传值
- Centos7.5安装redis
- 使用Unity和A*插件实现LoL英雄联盟中的移动方式
- Java语言程序设计D实验——类与对象实验
- 元器件_封装库_命名规范
- 可视化 | Python电影Top250数据可视化
- 全文搜索引擎ElasticSearch
- java中国象棋棋盘放置棋子,Qt中国象棋二——棋盘与棋子的绘制
- ETL-kettle/pentaho的二次开发
- python re import_完全搞懂Python 中的 import 与 from import
- 计算机与仪表电缆,计算机与仪表电缆
- 多方面看IP地址与常见的端口号~华山论剑
- #![feature]` may not be used on the stable release channel 问题解决及设置Rust Channel的三种方式
热门文章
- Github 常见缩写含义 WIP/LGTM/AFAIK
- java base64 包_Java实现BASE64编解码
- Matlab如何提取fig文件中的数据
- 如何使用Win10原生的截图工具Snipping Tool?
- python中将字符变为大写_python3.4.3将汉字转换为大写拼音首字母
- win10上运行ROS时报:qt.qpa.plugin:Cound not find the Qt platform plugin “windows“
- 小米笔记本触摸板失灵问题
- abs在c 语言中的作用是什么意思,abs什么意思 c语言中abs是什么意思
- 2022年基于PXI/PCI/PCIe/USB总线的高速数据采集卡汇总
- android中pdf转换成图片格式,Android-PDF转图片