`
MauerSu
  • 浏览: 513374 次
  • 性别: 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是java.math包下的一个类,它提供了对不可变的、任意精度的十进制数的支持。这个类的构造方法允许用户指定一个非常大的整数(包含小数位)作为基数以及一个表示小数点位置的整数。它可以处理非常大的数字...

    bigdecimal

    1. **构造方法**: 在构造 `BigDecimal` 对象时,推荐使用 `Double.toString()` 来转换 `double` 类型的值,因为直接传递 `double` 值可能会导致意外的结果。 2. **舍入模式**: `BigDecimal.ROUND_HALF_UP` 表示四...

    将 BigDecimal 类型转换为 Integer 类型.pdf

    BigDecimal 类型是 Java 提供的一种用于精确算术运算的类,它支持任意大小的十进制数,并且能够避免浮点数计算时可能出现的舍入误差。然而,有时我们需要将这些大数转换为整数类型,如 Integer,以便于存储或者进行...

    BigDecimal工具类.docx

    第一个方法add(double,double)是将两个double类型的数相加,然后返回double类型的结果。第二个方法add(String,String)是将两个字符串类型的数相加,然后返回BigDecimal类型的结果。第三个方法add(String,String,int)...

    BigDecimal的计算

    - `BigDecimal.valueOf(double val)`:根据双精度浮点数创建一个 `BigDecimal` 实例。 ##### 3. 数学运算 `BigDecimal` 提供了一系列的方法来进行数学运算: - `add(BigDecimal augend)`:加法操作。 - `subtract...

    BigDecimal类

    * 由于一般数值类型,例如 double,不能准确地代表 16 位有效数以上的数字,在使用 BigDecimal 时,应用 BigDecimal(String) 构造器创建对象才有意义。 * 不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学...

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

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

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

    Java BigDecimal和double示例及相关问题解析 在 Java 中,浮点数的表示形式有多种,包括 float 和 double 等,但是这些类型在进行计算时会出现精度问题,而 BigDecimal 则可以解决这种问题。本文将主要介绍 Java 中...

    java中BigDecimal的操作方法

    在Java编程语言中,BigDecimal是用于处理高精度和可配置精度的十进制数的类。在进行商业计算时,由于浮点数(double和float)存在精度问题,不能保证准确的结果,因此通常推荐使用BigDecimal来确保计算的精确性。本文...

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

    而`BigDecimal`类提供了对任意精度的十进制数的支持,确保了商业计算中的准确性。 ### `BigDecimal`的基本操作 1. **加法**:通过调用`add()`方法完成两个`BigDecimal`对象的相加。例如: ```java BigDecimal ...

    BigDecimal使用

    2. 创建 BigDecimal 对象:可以通过多种方式创建 BigDecimal 对象,例如将 double 或 String 类型的数值转换为 BigDecimal 对象。 3. 精确的加法运算:使用 BigDecimal 的 add 方法可以进行精确的加法运算,例如将...

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

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

    Java编程BigDecimal用法实例分享

    BigInteger类是针对大整数的处理类,而BigDecimal类则是针对大小数的处理类。与float和double不同,BigDecimal类可以精确地计算货币值等,适合在商业计算中使用。 创建BigDecimal对象有多种方法,包括使用double...

    BigDecimal 加减乘除运算

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

    BigDecimal加减乘除计算

    初始化 BigDecimal 时,推荐使用字符串参数而非直接使用 double,因为 double 类型可能存在精度损失。例如: ```java BigDecimal num1 = new BigDecimal("0.005"); // 推荐 BigDecimal num2 = new BigDecimal...

    java-BigInteger-BigDecimal类源码

    在Java编程语言中,`BigInteger`和`BigDecimal`是两个重要的类,它们分别用于处理大整数和高精度浮点数。这两个类位于`java.math`包下,为开发者提供了超越基本数据类型(如int、long和double)的计算能力。在深入...

    BigDecimal-CPP-master.zip

    标题中的"BigDecimal-CPP-master.zip"表明这是一个与BigDecimal类实现相关的C++项目压缩包。BigDecimal是一种可以处理任意精度的十进制浮点数的数据类型,它通常用于金融或会计等需要高精度计算的领域,因为在这些...

    Java Double 精度问题总结

    3. **表示范围限制**:尽管 `double` 类型提供了较高的精度,但仍然存在无法表示的数值,特别是非常大或非常小的数。 #### 二、Java Double 精度问题实例分析 考虑以下示例代码: ```java double a = 0.1; double...

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

    同样地,先将`Double`转换为`BigDecimal`,调用`add()`方法,最后再转回`double`。 3. **相除(Divide)**: `div(Double d1, Double d2, int scale)`方法执行除法并指定结果的小数位数(scale)。使用`divide()`...

    Java对BigDecimal常用方法的归类(加减乘除).doc

    在上面的代码中,使用 BigDecimal 对象 b1 和 b2 分别将 double 类型的 v1 和 v2 转换为 BigDecimal 对象,然后使用 add 方法将两个 BigDecimal 对象相加,并将结果转换为 double 类型返回。 减法运算 在 Java 中...

Global site tag (gtag.js) - Google Analytics