从上面代码的运行结果看出: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 实现精确的加减乘除运算相关推荐

  1. 复数加减java_用java实现复数的加减乘除运算

    用java实现复数的加减乘除运算 1. 背景 老师在课上布置了几道java编程题,此为其中之一 2. 题目内容 设计一个类Complex,用于封装对复数的下列操作: (1)一个带参数的构造函数,用于初 ...

  2. java中两个复数相乘_用java实现复数的加减乘除运算

    用java实现复数的加减乘除运算 1. 背景 老师在课上布置了几道java编程题,此为其中之一 2. 题目内容 设计一个类Complex,用于封装对复数的下列操作: (1)一个带参数的构造函数,用于初 ...

  3. java float 加法_JAVA 实现精确的加减乘除运算

    JAVA在加减乘除运算时易发生精度丢失,达不到我们想要的计算结果:为了能够精确表示.计算浮点数,JAVA提供了BigDecimal类,可以以BigDecimal为基础定义一个Arith工具类,代码如下 ...

  4. Java复数类实现加减乘除运算

    package ch09; public class Complex {public double real;//复数实部public double imaginary;//复数虚部public Co ...

  5. java分子分母的加减乘除_JAVA实现精确的加减乘除代码

    用java代码实现一个加减乘除运算计算器白雪公主的故事告诉我们,就算七个屌丝对她好,也比不过高富帅给她的一个吻. 现场写一个:代码如下 import java.util.Scanner; public ...

  6. java BigDecimal实现精确加减乘除运算

    原文:http://blog.csdn.net/shadow_zed/article/details/73522157 import java.math.BigDecimal;/*** 由于Java的 ...

  7. java文档注释加减乘除,java精确的加减乘除

    package mathDemo; import java.math.BigDecimal; /** * 目标:封装加减乘除操作的自定义工具类 * 原因:float ,double 只能用来做科学计算 ...

  8. java用流体加减乘除_任意输入两个数,完成加法、减法、乘法、除法运算!(加减乘除运算分别定义四个方法)_学小易找答案...

    [简答题]编写程序实现菜单设计 [简答题]一层平面图 [简答题]编写一个程序实现大小写字母转换 [简答题]利用循环语句输出一个五行的等腰三角形,如下图 [简答题]编写一个程序实现交换两个变量的数值. ...

  9. 关于浮点型加减乘除运算不精确的问题

    关于浮点型加减乘除运算不精确的问题 先举一个遇到这个错误的项目例子: 之前做一个小模块,由于后端接口还没有完成,需要自己搭建node服务,返回数据,功能需求是实时更新的,这个小模块中本人没有使用web ...

最新文章

  1. mysql配置_Mysql配置 max_allowed_packet
  2. Sql Server 2005的1433端口打开和进行远程连接
  3. 反射机制(java)
  4. 苹果手机java_iphone手机,苹果手机如何登陆网易163邮箱
  5. Echarts开源可视化库学习(二)常用图表的实现与效果
  6. 静态编译qemu_使用QEMU chroot进行固件本地调试
  7. C Primer Plus note1
  8. 史上最著名的10个思想实验
  9. HDU5794 - A Simple Chess
  10. python系统关键字_Python基础教程 - global关键字及全局变量的用法
  11. 【转】Java计算文件的hash值
  12. 4地形编辑插件_SketchUp高效建模插件
  13. ajax的总结和使用
  14. 成功的人都很会控制自己的情绪
  15. Sparsity and Some Basics of L1 Regularization
  16. pandas map applymap apply方法详解
  17. JDK8 官方下载地址
  18. MOEA/D算法原理及应用方向
  19. Db4o数据库:细说查询
  20. LeetCode 1114:按序打印

热门文章

  1. T型整流电路matlab simulink仿真模型 三电平整流电路 电动汽车充电电路
  2. 【奋斗】最全的厚黑学...教你怎样混社会
  3. 链表、二叉树、图的建立与初始化
  4. 「金融帝国实验室」(Capitalism Lab)现行官方正版游戏『销售政策指引』(2021.07.23-08.15)
  5. 网页中加载二次元3D虚拟主播源码(1:项目介绍和源码)
  6. 网站被攻击了怎么办?3种网站攻击的解决办法
  7. 专利号校验码php,【FST】你知道吗?专利号校验位的计算
  8. 笔记本显示网络电缆被拔出怎么解决_本地连接网络电缆被拔出 本地连接网络电缆被拔出解决方法【图文】...
  9. HNOI 2012 射箭 半平面交
  10. 访问阿里云服务器ERR_CONNECTION_REFUSED 问题解决