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 ...
随机推荐
- DataGridView绑定BindingList<T>带数据排序的类
本文章转载:http://yuyingying1986.blog.hexun.com/30905610_d.html DataGridView绑定List<T>类时候,不会自动的进行排序. ...
- java 服务端解决ajax跨域问题
//过滤器方式 可以更改为拦截器方式public class SimpleCORSFilter implements Filter { public void doFilter(ServletRequ ...
- LTTng调试: 一个系统软件工程师的随手涂鸦
http://nanxiao.me/install-lttng/ http://packages.efficios.com/ http://lttng.org/ http://lttng.org/do ...
- Qt知识点、疑难杂症的治疗
Q: QVariant 保存指针数据 A1: 1,使用QVariant::fromValue((void*)target)保存数据 2,使用(ShortcutItem*)(v.value<v ...
- 第五章:最后一步准备,1.8的Json模型、状态描述机制详解
<基于1.8 Forge的Minecraft mod制作经验分享> 1.8的所有纹理材质都需要一个Json来对其描述,这一块感觉是各大神的教程里面涉及最少最浅的,我就斗胆在这分享下我研究了 ...
- C#—集合(Collection)
1.栈(stack<T>) using System; using System.Collections.Generic; using System.Linq; using System. ...
- Dhroid框架笔记(DhNet、Adapter)
3.1.1 DhNet用于获取网络中的数据 DhNet net=new DhNet("路劲"); net.addParam("key", "参数&qu ...
- 关于uploadify 没有显示进度条!!!!
如果你也弄了很久不知道为什么不出现上传进度条!,那就一定要看这里了! 我注释了 queueID 属性后 就出现了!!!!! 就是这么简答! //添加界面的附件管理 $('#file_upload'). ...
- java中的IO一
一.IO操作的目标 IO的流向 二.IO的分类方法 1.第一种分法:输入流.输出流 2.第二种分法:字节流.字符流 3.第三种分法:节点流.处理流 三.IO当中的核心类 核心类中的核心方法 Input ...
- 给div命名,使逻辑更加清晰
在上一小节中,我们把一些标签放进<div>里,划分出一个独立的逻辑部分.为了使逻辑更加清晰,我们可以为这一个独立的逻辑部分设置一个名称,用id属性来为<div>提供唯一的名称, ...