java浮点类型需要采用java.math.*这个工具包,这样的计算结果才是我们想要的。呵呵

 import java.math.BigDecimal;
import java.text.NumberFormat; /**
* 数学计算类
* @author mingge
*
*/
public class ArithUtil { private ArithUtil(){ } /**
* 浮点数加法
* @param num1
* @param num2
* @return
*/
public static double add(double num1,double num2){
BigDecimal v1=BigDecimal.valueOf(num1);
BigDecimal v2=BigDecimal.valueOf(num2);
return v1.add(v2).doubleValue();
} /**
* 浮点数减法
* @param num1
* @param num2
* @return
*/
public static double sub(double num1,double num2){
BigDecimal v1=BigDecimal.valueOf(num1);
BigDecimal v2=BigDecimal.valueOf(num2);
return v1.subtract(v2).doubleValue();
} /**
* 两个数乘法
* @param num1
* @param num2
* @return
*/
public static double mul(double num1,double num2){
BigDecimal v1=BigDecimal.valueOf(num1);
BigDecimal v2=BigDecimal.valueOf(num2);
return v1.multiply(v2).doubleValue();
} /**
* 两个数的除法,除不尽四舍五入
* @param num1
* @param num2
* @param scale
* @return
*/
public static double div(double num1,double num2,int scale){
if (scale<0) {
throw new IllegalArgumentException("参数异常。。。");
}
BigDecimal v1=BigDecimal.valueOf(num1);
BigDecimal v2=BigDecimal.valueOf(num2);
return v1.divide(v2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
} /**
* 保留两位小数
* @return
*/
public static double changeTwoDecimal(double d){
NumberFormat nf =NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
return Double.valueOf(nf.format(d));
} /**
* 保留指定位数
* @param d
* @param scale
* @return
*/
public static double changeDecimal(double d,int scale){
BigDecimal bg = new BigDecimal(d);
double value = bg.setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue();
return value; } public static void main(String[] args) {
System.out.println(ArithUtil.changeTwoDecimal(5.60));
System.out.println(ArithUtil.changeDecimal(6.356d, 5));
} }

这个工具类暂时写到这里,还有待继续优化...知识经济就是不停得进步吧

java浮点类型计算的更多相关文章

  1. Java浮点类型的格式化

    概述 基于Java,介绍将浮点类型小数进行格式化的方案. 正文 在Java中,用于格式化小数的类是java.text.DecimalFormat,比如你可以这样使用: double data = 33 ...

  2. JS浮点类型计算

    /* ---------------- JS浮点数运算重置 ---------------- */ //加法函数 //调用:accAdd(arg1,arg2) //返回值:arg1加上arg2的精确结 ...

  3. java 基础 浮点类型

    1.浮点类型用于表示小数的数据类型. 2.浮点数原理:也就是二进制科学计数法. 3.Java的浮点类型有float和double两种. 4.Java默认浮点类型计算的结果是double类型,字面量也是 ...

  4. Java中浮点类型的精度问题 double float

    要说清楚Java浮点数的取值范围与其精度,必须先了解浮点数的表示方法与浮点数的结构组成.因为机器只认识01,你想表示小数,你要机器认识小数点这个东西,必须采用某种方法.比如,简单点的,float四个字 ...

  5. Java基础扫盲系列(二)—— Java中BigDecimal和浮点类型

    一直以来我几乎未使用过BigDecimal类型,只有在DB中涉及到金额字段时听说要用Decimal类型,但是今天再项目代码中看到使用BigDecimal表示贷款金额. 本篇文章不是介绍BigDecim ...

  6. java.lang.NumberFormatException: Infinite or NaN原因之浮点类型除数为0结果探究

    背景 在对Double类型的数据进行计算操作,将结果转化为BigDecimal时抛出了下面的异常,进行了Debug才发现了问题原因,同时也暴露出了自己在一些基础知识上还有些欠缺. Exception ...

  7. JAVA中使用浮点数类型计算时,计算精度的问题

    标题     在Java中实现浮点数的精确计算    AYellow(原作) 修改    关键字     Java 浮点数 精确计算   问题的提出:如果我们编译运行下面这个程序会看到什么?publi ...

  8. JAVA字符串与整形、浮点类型之间的相互转换总结

    1.字符串转化为整形.浮点类型 String s = "100"; //方法一 int a = Integer.parseInt(String s); Long.parseLong ...

  9. Java基础类型总结

    最近一直在总结反思自己, 趁着现在请假在学校上课的空余时间,从基础开始重新温故学习下Java,充实下自己. 一.数据类型 从下图中,我们可以很清晰的看出Java中的类型,其中红色方框中的是Java的4 ...

随机推荐

  1. Android下 scrollview的滚动停止事件的监听方法

    使用递归调用的方法,每隔5毫秒检查一下是否已经停止,如果已经停止,就拿到事件啦! 不扯蛋,直接上代码. scrollContent就是我的scrollview. [代码]java代码: ? 1 2 3 ...

  2. 三种root的修补方式

    三种root的修补方式 system/core/adb/abd.c adbd漏洞,请看abd.c的第917行/* then switch user and group to "shell&q ...

  3. 第一篇:Power BI数据可视化概述

    前言 "可视化之工具,可爱者甚蕃.统计学家独爱R,自Python来,世人盛爱matplotlib.余独爱Power BI之出微软而不染(免费),濯Office而不妖(够精简).......& ...

  4. iOS开发系列之触摸事件

    基础知识 三类事件中触摸事件在iOS中是最常用的事件,这里我们首先介绍触摸事件. 在下面的例子中定义一个KCImage,它继承于UIView,在KCImage中指定一个图片作为背景.定义一个视图控制器 ...

  5. Java基础知识强化之IO流笔记10:File类输出指定目录下指定后缀名的文件名称案例(File类的文件过滤器方法改进list( FilenameFilter ff))

    1. 案例: 判断F盘下是否有后缀名为.jpg的文件,如果有的话,就输出这个文件名. 2. 案例代码如下: (1)思路是:先获取所有的文件和文件夹封装的对象,然后遍历的时候,依次判断,如果满足条件就输 ...

  6. C#解leetcode 18. 4Sum

    Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = tar ...

  7. Dhroid框架笔记(IOC、EventBus)

    dhroid 目前包含了6大组件供大家使用1.Ioc容器: (用过spring的都知道)视图注入,对象注入,接口注入,解决类依赖关系2.Eventbus: android平台事件总线框架,独创延时事件 ...

  8. Hibernate 报错org.hibernate.PropertyAccessException: IllegalArgumentException(已解决)

    无聊想搭建一个项目,练手,做点小功能就一个卡在这个问题上 org.hibernate.PropertyAccessException: IllegalArgumentException occurre ...

  9. c# 学习笔记(三)

    程序集程序集的私有部署 不用在注册表中注册组件卸载只需要从文件系统中删除他即可 共享程序集和GAC 只有强命名程序集能被添加到GAC中程序集数据签名只需在安装到GAC时检查一次 GAC内的并肩执行GA ...

  10. Oracle NULLIF函数

    Oracle NULLIF函数 Oracle NULLIF函数语法为NULLIF(表达式1,表达式2),如果表达式1和表达式2相等则返回空值,如果表达式1和表达式2不相等则返回表达式1的结果. 注意: ...