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. VMware于CentOS网络设置

    VMware于CentOS网络设置 底: 笔记本电脑有两块网卡: 1. 网卡连接公司内网,仅仅配置了内网ip和子网掩码. 2. 无线网卡.连接4g无线路由器.dhcp自己主动配置. 问题: 在VMwa ...

  2. Java 实现 SSH 协议的客户端登录认证方式--转载

    背景 在开篇之前,让我们先对 SSH 协议有个宏观的大致了解,这样更有利于我们对本文的加深了解.首先要提到的就是计算机网络协议,所谓计算机网络协议,简单的说就是定义了一套标准和规则,使得不同计算机之间 ...

  3. 多线程下的performSelector和NSThread的使用

    多线程下的performSelector和NSThread的使用 NSThread的多线程使用: 我们可以使用这两种方法来使用线程中的问题 - (id)initWithTarget:(id)targe ...

  4. 初识Ajax技术

    Ajax:(Asynchronous JavaScript And Xml)是一种整合了JavaScript.XML.CSS等现有技术 Ajax工作流程:   纯javaScript的Ajax请求   ...

  5. nodejs抓取网页内容

    function loadPage(url) { var http = require('http'); var pm = new Promise(function (resolve, reject) ...

  6. jquery对同级的td做radio限制

    <html> <head> <title></title> <script src="http://libs.baidu.com/jqu ...

  7. VI文件编辑操作说明

    vi Hello.c (回车后就进入,按i或a键开始编辑.要退出按ESC,进入中间模式,按冒号 :后面跟命令):wq (保存并退出):q!(退出不保存)

  8. Fractal_Test

    本文由博主(YinaPan)原创,转载请注明出处:http://www.cnblogs.com/YinaPan/p/Fractal_Test.html  参考:http://catlikecoding ...

  9. 在VMware安装Centos再安装Oracle数据库(个人学习使用)

    打开VMware 选择稍后安装 自定义安装 小生安装的是64位的Centos 给虚拟机设置名称和安装位置 设置虚拟机打处理器并分配内存(oracle12G我建议内存为2G以上) 网络类型选择仅主机模式 ...

  10. 《JavaScript dom 编程艺术》 placeholder占位符IE8兼容办法。

    在<JavaScript dom 编程艺术>第11章学来的. 相对于用JavaScript替换文本框的提示语句 <!DOCTYPE html> <html lang=&q ...