JAVA 实现精确的加减乘除运算
从上面代码的运行结果看出:JAVA在加减乘除运算时易发生精度丢失,达不到我们想要的计算结果;为了能够精确表示、计算浮点数,JAVA提供了BigDecimal类,可以以BigDecimal为基础定义一个Arith工具类,代码如下:
import java.math.BigDecimal;
public class Arith
{//默认除法运算精度private static final int DEF_DIV_SCALE = 10;//构造器私有化,让这个类不能实例化private Arith(){}//提供精确的加法运算public static double add(double v1, double v2){BigDecimal b1 = BigDecimal.valueOf(v1);BigDecimal b2 = BigDecimal.valueOf(v2);return b1.add(b2).doubleValue();}//精确的减法运算public static double sub(double v1, double v2){BigDecimal b1 = BigDecimal.valueOf(v1);BigDecimal b2 = BigDecimal.valueOf(v2);return b1.subtract(b2).doubleValue();}//精确的乘法运算public static double mul(double v1, double v2){BigDecimal b1 = BigDecimal.valueOf(v1);BigDecimal b2 = BigDecimal.valueOf(v2);return b1.multiply(b2).doubleValue();}//提供(相对)精确的除法运算,当发生除不尽的情况时//精确到小数点后10位的数字四舍五入public static double div(double v1, double v2){BigDecimal b1 = BigDecimal.valueOf(v1);BigDecimal b2 = BigDecimal.valueOf(v2);return b1.divide(b2, DEF_DIV_SCALE, BigDecimal.ROUND_HALF_UP).doubleValue();} public static void main(String[] args){System.out.println("0.05 + 0.01 = " + Arith.add(0.05, 0.01));System.out.println("1.0 - 0.42 = " + Arith.sub(1.0, 0.42));System.out.println("4.015*100 = " + Arith.mul(4.015, 100));System.out.println("123.3/100 = " + Arith.div(123.3, 100));}
}
JAVA 实现精确的加减乘除运算相关推荐
- 复数加减java_用java实现复数的加减乘除运算
用java实现复数的加减乘除运算 1. 背景 老师在课上布置了几道java编程题,此为其中之一 2. 题目内容 设计一个类Complex,用于封装对复数的下列操作: (1)一个带参数的构造函数,用于初 ...
- java中两个复数相乘_用java实现复数的加减乘除运算
用java实现复数的加减乘除运算 1. 背景 老师在课上布置了几道java编程题,此为其中之一 2. 题目内容 设计一个类Complex,用于封装对复数的下列操作: (1)一个带参数的构造函数,用于初 ...
- java float 加法_JAVA 实现精确的加减乘除运算
JAVA在加减乘除运算时易发生精度丢失,达不到我们想要的计算结果:为了能够精确表示.计算浮点数,JAVA提供了BigDecimal类,可以以BigDecimal为基础定义一个Arith工具类,代码如下 ...
- Java复数类实现加减乘除运算
package ch09; public class Complex {public double real;//复数实部public double imaginary;//复数虚部public Co ...
- java分子分母的加减乘除_JAVA实现精确的加减乘除代码
用java代码实现一个加减乘除运算计算器白雪公主的故事告诉我们,就算七个屌丝对她好,也比不过高富帅给她的一个吻. 现场写一个:代码如下 import java.util.Scanner; public ...
- java BigDecimal实现精确加减乘除运算
原文:http://blog.csdn.net/shadow_zed/article/details/73522157 import java.math.BigDecimal;/*** 由于Java的 ...
- java文档注释加减乘除,java精确的加减乘除
package mathDemo; import java.math.BigDecimal; /** * 目标:封装加减乘除操作的自定义工具类 * 原因:float ,double 只能用来做科学计算 ...
- java用流体加减乘除_任意输入两个数,完成加法、减法、乘法、除法运算!(加减乘除运算分别定义四个方法)_学小易找答案...
[简答题]编写程序实现菜单设计 [简答题]一层平面图 [简答题]编写一个程序实现大小写字母转换 [简答题]利用循环语句输出一个五行的等腰三角形,如下图 [简答题]编写一个程序实现交换两个变量的数值. ...
- 关于浮点型加减乘除运算不精确的问题
关于浮点型加减乘除运算不精确的问题 先举一个遇到这个错误的项目例子: 之前做一个小模块,由于后端接口还没有完成,需要自己搭建node服务,返回数据,功能需求是实时更新的,这个小模块中本人没有使用web ...
最新文章
- mysql配置_Mysql配置 max_allowed_packet
- Sql Server 2005的1433端口打开和进行远程连接
- 反射机制(java)
- 苹果手机java_iphone手机,苹果手机如何登陆网易163邮箱
- Echarts开源可视化库学习(二)常用图表的实现与效果
- 静态编译qemu_使用QEMU chroot进行固件本地调试
- C Primer Plus note1
- 史上最著名的10个思想实验
- HDU5794 - A Simple Chess
- python系统关键字_Python基础教程 - global关键字及全局变量的用法
- 【转】Java计算文件的hash值
- 4地形编辑插件_SketchUp高效建模插件
- ajax的总结和使用
- 成功的人都很会控制自己的情绪
- Sparsity and Some Basics of L1 Regularization
- pandas map applymap apply方法详解
- JDK8 官方下载地址
- MOEA/D算法原理及应用方向
- Db4o数据库:细说查询
- LeetCode 1114:按序打印
热门文章
- T型整流电路matlab simulink仿真模型 三电平整流电路 电动汽车充电电路
- 【奋斗】最全的厚黑学...教你怎样混社会
- 链表、二叉树、图的建立与初始化
- 「金融帝国实验室」(Capitalism Lab)现行官方正版游戏『销售政策指引』(2021.07.23-08.15)
- 网页中加载二次元3D虚拟主播源码(1:项目介绍和源码)
- 网站被攻击了怎么办?3种网站攻击的解决办法
- 专利号校验码php,【FST】你知道吗?专利号校验位的计算
- 笔记本显示网络电缆被拔出怎么解决_本地连接网络电缆被拔出 本地连接网络电缆被拔出解决方法【图文】...
- HNOI 2012 射箭 半平面交
- 访问阿里云服务器ERR_CONNECTION_REFUSED 问题解决