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. Lucene 4.x实践1

    在Lucene 3.x时代,<Lucene In Action>是一本相当不错的参考书,书中详细介绍了Lucene各种高级使用技术,对于开发者来说非常实用.但是近期Lucene升级到了4. ...

  2. Textview 文本旋转,倾斜

    有时候Android自带的控件无法满足我们的某些要求,这时就需要我们自定义控件来实现这些功能.比如需要一个TextView里的字倾斜一定的角度,就需要自定义TextView. 代码如下: ? 1 2 ...

  3. 数据库框架 Litepal

    1.导包 dependencies {   compile 'org.litepal.android:core:1.4.1' } 2.在asstes中建立litepal.xml文件 <?xml ...

  4. PHP安全编程:跨站脚本攻击的防御(转)

    跨站脚本攻击是众所周知的攻击方式之一.所有平台上的Web应用都深受其扰,PHP应用也不例外. 所有有输入的应用都面临着风险.Webmail,论坛,留言本,甚至是Blog.事实上,大多数Web应用提供输 ...

  5. configure JAAS for jboss 7.1 and mysql--reference

    Hello all, In this tutorial we are going to configure JAAS for jboss 7.1 and mysql for Form based au ...

  6. iOS 实现时间线列表效果

    之前看到美团的订单详情页面很有特色,于是决定模仿一下这个效果. 其实就是简单的 TableView 技巧,下面我们就来一步一步实现它. 画个泡泡 首先到 Sketch 里画出气泡的效果 很简单,一个圆 ...

  7. Delpoyment assembly

    遇见异常: java.lang.ClassNotFoundException: 原因:没有对tomcat进行依赖说明 解决: properties - Delpoyment assembly 将tom ...

  8. ACM vim配置

    ACM现场赛时用的,比较简短,但是主要的功能都有了. 直接打开终端输入gedit ~/.vimrc 把下面的东西复制到里面就行了. filetype plugin indent on colo eve ...

  9. State 状态模式

    简介 状态模式允许一个对象在其内部[状态]改变的时候改变其[行为].这个对象看上去就像是改变了它的类一样. 用一句话来表述,状态模式把所研究的对象的[行为]包装在不同的[状态对象]里,[每一个状态对象 ...

  10. 把C#对象转换为json字符串

    下面的代码写在ashx一般处理程序中 声明context.Response.ContentType = "application/json";代表服务器端返回的数据为json字符串 ...