`
MauerSu
  • 浏览: 497140 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

double转BigDecimal,数变大

    博客分类:
  • J2SE
 
阅读更多
源:http://blog.csdn.net/linbrain0000/article/details/49716997
评:
环境Windows 7 64位,JDK1.8.0_40

[java] view plain copy
public static void main(String[] args) { 
    double d = 1.1; 
    BigDecimal bd1 = new BigDecimal(d);    //(1)  
    BigDecimal bd2 = BigDecimal.valueOf(d);//(2)  
    BigDecimal bd3 = new BigDecimal("1.1");//(3) 
     
    System.out.println(bd1);//打印1.100000000000000088817841970012523233890533447265625 
    System.out.println(bd2);//打印1.1 
    System.out.println(bd3);//打印1.1 
     
    System.out.println(bd1.compareTo(bd2));//打印1 
    System.out.println(bd1.compareTo(bd3));//打印1 
    System.out.println(bd2.compareTo(bd3));//打印0 
     


用(1)方法传double直接new BigDecimal,数会变大,(2)(3)不会,建议不要用(1)
分享到:
评论

相关推荐

    BigDecimal向Double转换

    BigDecimal向Double转换

    关于BigDecimal的构造函数与大小比较

    我们的 new BigDecimal(0.15)得到了一个超接近的数“0.1499999999999999944488848768742172978818416595458984375”,但它就是小于0.15。上网查得,BigDecimal有三种构造方式: java 代码 BigDecimal(Stirng s), ...

    Java中double类型下出现精度计算错误情况下出力方法

     要保证精度就要使用BigDecimal类,而且不能直接从double直接转BigDecimal,要将double转string再转BigDecimal。也就是不能使用BigDecimal(double val) 方法,你会发现没有效果。要使用BigDecimal(String val) 方法...

    BigDecimal 加减乘除运算

    在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术...

    Java BigDecimal和double示例及相关问题解析

    主要介绍了Java BigDecimal和double示例及相关问题解析,简单介绍了BigDecimal类的相关内容,分享了两则相关实例,对问题进行了分析,具有一定参考价值,需要的朋友可以了解下。

    CommonUtils.java

    字符串转BigDecimal,Double,Float,Integer 判断字符串是否在集合中 通配符算法。 可以匹配"*"和"?

    java中double转化为BigDecimal精度缺失的实例

    下面小编就为大家带来一篇java中double转化为BigDecimal精度缺失的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Java中BigDecimal的加减乘除、比较大小与使用注意事项

    对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数的操作,下面这篇文章给大家介绍了Java中BigDecimal的加减...

    Java BigDecimal详解_动力节点Java学院整理

    借用《Effactive Java》这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,...但是,商业计算往往要求结果精确,例如银行存款数额,这时候BigDecimal就派上大用场啦。

    Java用BigDecimal解决double类型相减时可能存在的误差

    主要介绍了Java用BigDecimal解决double类型相减时可能存在的误差,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    BigDecimal-CPP-master.zip

    关于浮点数在计算机中的存储方式与精度丢失问题(float,double):https://blog.csdn.net/alzzw/article/details/108132830 可以用此类解决

    精确计算工具类

    BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.add(b2).doubleValue(); } /** * 提供精确的减法运算。 * @param v1 被减数 * @...

    数据修约(四舍五入\整数位修约)

    1.采用两种方式实现数据修约【①IEEE754的银行家算法、②传统的四舍五入】。 2.实现Decimal、double、string三种数据类型的数据修约。 3.实现了指定小数位、指定整数位的数据修约。

    Java BigDecimal使用及基本运算(推荐)

    Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。这篇文章主要介绍了Java BigDecimal使用指南针(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,...

    Java 加减乘除工具类(解决精度损失问题)

    BigDecimal b1 = new BigDecimal(Double.toString(value1.doubleValue())); BigDecimal b2 = new BigDecimal(Double.toString(value2.doubleValue())); return b1.add(b2).doubleValue(); } /** * 提供精确的...

    java中BigDecimal进行加减乘除的基本用法

    大家应该对于不需要任何准确计算精度的数字可以直接使用float或double运算,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数的操作。下面这篇文章就给大家介绍介绍关于...

    精确计算Double型数据

    精确计算Double型数据,可用于货币计算

    处理较大数字的PHP库.zip

    一般的float型和Double型数据只可以用来做科学计算或者 是工程计算,由于在商业计算中,要求的数字精度比较高,所以要用到java.math.BigDecimal类,它支持任何精度的定点数,可以用它来精确 计算货币值。

    fastjson 输出double类型强制转为科学计数法问题

    在json输出的时候,当double类型的数值过大或者过小的时候,往会在内部被强制转化为科学计数法形式输出,如果不需要科学计数法,则可以通过使用BigDecimal类来表示double类型,代码如下: Java版本: import ...

    BigDecimalUtils

    在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术...

Global site tag (gtag.js) - Google Analytics