java浮点类型计算
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浮点类型计算的更多相关文章
- Java浮点类型的格式化
概述 基于Java,介绍将浮点类型小数进行格式化的方案. 正文 在Java中,用于格式化小数的类是java.text.DecimalFormat,比如你可以这样使用: double data = 33 ...
- JS浮点类型计算
/* ---------------- JS浮点数运算重置 ---------------- */ //加法函数 //调用:accAdd(arg1,arg2) //返回值:arg1加上arg2的精确结 ...
- java 基础 浮点类型
1.浮点类型用于表示小数的数据类型. 2.浮点数原理:也就是二进制科学计数法. 3.Java的浮点类型有float和double两种. 4.Java默认浮点类型计算的结果是double类型,字面量也是 ...
- Java中浮点类型的精度问题 double float
要说清楚Java浮点数的取值范围与其精度,必须先了解浮点数的表示方法与浮点数的结构组成.因为机器只认识01,你想表示小数,你要机器认识小数点这个东西,必须采用某种方法.比如,简单点的,float四个字 ...
- Java基础扫盲系列(二)—— Java中BigDecimal和浮点类型
一直以来我几乎未使用过BigDecimal类型,只有在DB中涉及到金额字段时听说要用Decimal类型,但是今天再项目代码中看到使用BigDecimal表示贷款金额. 本篇文章不是介绍BigDecim ...
- java.lang.NumberFormatException: Infinite or NaN原因之浮点类型除数为0结果探究
背景 在对Double类型的数据进行计算操作,将结果转化为BigDecimal时抛出了下面的异常,进行了Debug才发现了问题原因,同时也暴露出了自己在一些基础知识上还有些欠缺. Exception ...
- JAVA中使用浮点数类型计算时,计算精度的问题
标题 在Java中实现浮点数的精确计算 AYellow(原作) 修改 关键字 Java 浮点数 精确计算 问题的提出:如果我们编译运行下面这个程序会看到什么?publi ...
- JAVA字符串与整形、浮点类型之间的相互转换总结
1.字符串转化为整形.浮点类型 String s = "100"; //方法一 int a = Integer.parseInt(String s); Long.parseLong ...
- Java基础类型总结
最近一直在总结反思自己, 趁着现在请假在学校上课的空余时间,从基础开始重新温故学习下Java,充实下自己. 一.数据类型 从下图中,我们可以很清晰的看出Java中的类型,其中红色方框中的是Java的4 ...
随机推荐
- linux nadianshi
http://www.cnblogs.com/fnng/archive/2012/03/19/2407162.html
- scala中常用但其他语言不常见的符号含义
本文旨在介绍Scala在其他语言中不太常见的符号含义,帮助理解Scala Code. 随着我对Scala学习的深入,我会不断增加该篇博文的内容. 修改记录 ----2016.11.23 新增scal ...
- SDK目录结构和adb工具及命令介绍
1.SDK目录介绍: ******************************** add-ons:Android开发需要的第三方文件,附加的库,如Google APIs.GoogleMaps. ...
- Java基础知识强化之集合框架笔记05:Collection集合的遍历
1.Collection集合的遍历 Collection集合直接是不能遍历的,所以我们要间接方式才能遍历,我们知道数组Array方便实现变量,我们可以这样: 使用Object[] toArray() ...
- android 安全退出应用程序的几种方法
android 安全退出应用程序的几种方法 正常关闭应用程序: 当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用: 第一种方法:首先获取当前进程的id,然后杀死该进程.a ...
- ajax提交富文本,内容被截断,解决方法及思路
问题描述: 使用百度的UEditor富文本插件用于前端富文本编辑,后端使用jsp,提交普通文本没有问题,后来发现在提交某些指定文本时,数据查回的数据出现不完整现象:第一件事就是想到“垃圾编辑器”
- oracle 的变量的定义和赋值
第一种 :先定义后赋值 代码 : declare V_AgeingType varchar2(500); begin V_AgeingType :='111'; end 第二种 ...
- 016--JLE JNG(小于等于)
一.指令格式 条件转移指令 JLE/JNG 格式: JLE/JNG 标号地址 功能: 小于等于/不大于 时转到标号地址 JNG 有符号 不大于 则跳转 //Jump if ...
- C# 带参访问接口,WebClient方式
1.当参数的数据较大时.WebClient同步. //实例化WebClient client = new WebClient();//地址 string path = "http://oa. ...
- MySql Connector/Net Mysql like 搜索中文的问题(c#和asp.net连接mysql)
Connector/Net 6.9.8 选择.net/mono即可,不需要安装. 将对应版本的MySql.Data.dll复制到bin目录下即可使用 http://dev.mysql.com/down ...