知识大全 Java简单类型进行精确浮点数运算

Posted

篇首语:遇到一些人,知道一些事,才能懂的理解与珍惜,才能看清自己的方向。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java简单类型进行精确浮点数运算相关的知识,希望对你有一定的参考价值。

Java简单类型进行精确浮点数运算  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  由于Java的简单类型不能够精确的对浮点数进行运算 这个工具类提供精确的浮点数运算 包括加减乘除和四舍五入     以下为代码      import java math BigDecimal;    public class Arith    //默认除法运算精度   private static final int DEF_DIV_SCALE = ;     //这个类不能实例化   private Arith()        /**    * 提供精确的加法运算     * @param v 被加数    * @param v 加数    * @return 两个参数的和    */   public static double add(double v double v )    BigDecimal b = new BigDecimal(Double toString(v ));    BigDecimal b = new BigDecimal(Double toString(v ));    return b add(b ) doubleValue();        /**    * 提供精确的减法运算     * @param v 被减数    * @param v 减数    * @return 两个参数的差    */   public static double sub(double v double v )    BigDecimal b = new BigDecimal(Double toString(v ));    BigDecimal b = new BigDecimal(Double toString(v ));    return b subtract(b ) doubleValue();        /**    * 提供精确的乘法运算     * @param v 被乘数    * @param v 乘数    * @return 两个参数的积    */     public static double mul(double v double v )    BigDecimal b = new BigDecimal(Double toString(v ));    BigDecimal b = new BigDecimal(Double toString(v ));    return b multiply(b ) doubleValue();        /**    * 提供(相对)精确的除法运算 当发生除不尽的情况时 精确到    * 小数点以后 位 以后的数字四舍五入     * @param v 被除数    * @param v 除数    * @return 两个参数的商    */   public static double div(double v double v )    return div(v v DEF_DIV_SCALE);        /**    * 提供(相对)精确的除法运算 当发生除不尽的情况时 由scale参数指    * 定精度 以后的数字四舍五入     * @param v 被除数    * @param v 除数    * @param scale 表示表示需要精确到小数点以后几位     * @return 两个参数的商    */   public static double div(double v double v int scale)    if(scale< )     throw new IllegalArgumentException(      The scale must be a positive integer or zero );        BigDecimal b = new BigDecimal(Double toString(v ));    BigDecimal b = new BigDecimal(Double toString(v ));    return b divide(b scale BigDecimal ROUND_HALF_UP) doubleValue();        /**    * 提供精确的小数位四舍五入处理     * @param v 需要四舍五入的数字    * @param scale 小数点后保留几位    * @return 四舍五入后的结果    */   public static double round(double v int scale)    if(scale< )     throw new IllegalArgumentException(      The scale must be a positive integer or zero );        BigDecimal b = new BigDecimal(Double toString(v));    BigDecimal one = new BigDecimal( );    return b divide(one scale BigDecimal ROUND_HALF_UP) doubleValue();      cha138/Article/program/Java/Javascript/201311/25460

相关参考

什么是定点数?什么是浮点数?

  一个数的小数点隐含地位于预定的位置上,将这种表示的数称为定点数。若小数点  在数中的位置不固定,或者说是浮动的,称这种用浮点表示的数称为浮点数。

知识大全 Java 基本语法(三)——运算符和类型转换

Java基本语法(三)——运算符和类型转换  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  原创:

知识大全 什么叫实型数据

什么叫实型数据?是C语言中的数据类型,数据类型分为基本整型、构造类型、指针类型、空类型。基本类型又分为整型、实型、字符型、枚举类型。实型数据就是加了小数点的数(也称浮点数类型)。顺便也说一下整型,整型

知识大全 Java精确截取字符串

Java精确截取字符串  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java精确截取字符串取得

知识大全 Java算术运算符

Java算术运算符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java的基本算术运算符与其他

知识大全 Java的字串运算符+

Java的字串运算符+  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这个运算符在Java里有一

知识大全 Java的逻辑运算符

Java的逻辑运算符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  逻辑运算符AND(&

知识大全 Java移位运算机制

Java移位运算机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  举例代码  publiccl

知识大全 Java的关系运算符

Java的关系运算符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  关系运算符生成的是一个布尔(

知识大全 java的算术运算符

  Java的基本算术运算符与其他大多数程序设计语言是相同的其中包括加号(+)减号()除号(/)乘号(*)以及模数(%从整数除法中获得余数)整数除法会直接砍掉小数而不是进位  Java也用一种简写形式