`

java的BigDecimal构造函数精度问题

阅读更多
BigDecimal a=new BigDecimal(1/100));//a=0

BigDecimal b=new BigDecimal(1).divide(new BigDecimal(100));//b=0.01


BigDecimal a=new BigDecimal(49999.99);//49999.9899999999979627318680286407470703125

BigDecimal c=BigDecimal.valueOf(49999.99);//49999.99

BigDecimal b=new BigDecimal("49999.99");//49999.99

 

总结如下:

1.当使用浮点数49999.99构造BigDecimal时,最好转成字符串"49999.99"构造或者用valueOf方法

2.当使用整数构造BigDecimal时,能正常显示

 

分享到:
评论

相关推荐

    java中BigDecimal的操作方法

    在进行商业计算时,由于浮点数(double和float)存在精度问题,不能保证准确的结果,因此通常推荐使用BigDecimal来确保计算的精确性。本文将深入探讨BigDecimal的基本操作、应用场景及注意事项。 首先,创建...

    java-BigInteger-BigDecimal类源码

    2. **精度控制**:`BigDecimal`的精度可以通过构造函数或者`setScale()`方法进行设置,以控制小数部分的位数。 3. **运算符重载**:`BigDecimal`提供了与`BigInteger`类似的算术操作,但还包括了除法、比较和舍入...

    关于java中BigDecimal的简介(csdn)————程序.pdf

    `BigDecimal`对象可以通过构造函数创建,通常接受一个字符串参数来指定数值。例如: ```java BigDecimal bd = new BigDecimal("123.456"); ``` 2. 运算方法: - **加法**:使用`add()`方法。例如: ```java ...

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

    BigDecimal 类在 Java 中是用于处理高精度和大数值计算的,它确保了在计算过程中不会因为浮点数的精度问题而导致结果错误。由于 double 和 float 类型在处理大数或需要绝对精确计算的场景下存在精度损失,因此 ...

    Java使用BigDecimal进行高精度计算的示例代码

    其中,以双精度浮点数作为输入的构造函数可能会产生舍入误差,因此需要使用基于整数或 String 的构造函数。 例如,以下代码展示了使用 BigDecimal 进行高精度计算的示例: public class Test { public static ...

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

    BigDecimal 有多种构造函数,其中 double 和 String 是两个常用的构造函数。double 构造函数的结果有一定的不可预知性,例如 new BigDecimal(0.1) 不等于 0.1,而是等于 0....

    javascript版BigDecimal类库

    1. **构造函数**:创建一个`BigDecimal`对象,可以接受字符串、数字或其他`BigDecimal`实例作为参数,以初始化值。 2. **算术操作**:提供加法(`add`)、减法(`subtract`)、乘法(`multiply`)、除法(`divide`...

    浅谈java中BigDecimal类的简单用法

    在Java编程语言中,`BigDecimal` 类位于 `java.math`...总的来说,`BigDecimal` 类是Java中处理高精度计算的重要工具,理解其构造函数和方法的用法,以及如何避免精度问题,对于编写准确的财务或科学计算程序至关重要。

    Java保留两位小数方法大全

    `BigDecimal`提供了丰富的构造函数和方法来支持高精度计算。 2. **避免直接比较浮点数**:不要直接比较两个浮点数是否相等,而是应该比较它们之间的差值是否在一个很小的范围内。 3. **使用`Math`类中的方法**:...

    java实现大数加法(BigDecimal)的实例代码

    然后,我们通过构造函数`BigDecimal(String val)`将字符串转换为`BigDecimal`对象,这里创建了`b1`和`b2`两个`BigDecimal`实例。 `BigDecimal`提供了许多操作方法,其中`add(BigDecimal val)`方法用于执行加法操作...

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

    `BigDecimal` 的构造函数接受各种类型的参数,包括 `String`、`BigInteger`、`int`、`long` 或 `double`,并根据这些值创建 `BigDecimal` 对象。 此外,`BigDecimal` 还提供了调整小数位数的方法 `setScale()`,...

    BigInteger BigDecimal 使用

    `BigDecimal`类则用于处理高精度的浮点数运算,它解决了`float`和`double`类型存在的精度问题。`BigDecimal`的构造方法同样接受字符串,或者可以通过`BigInteger`来创建: ```java BigDecimal bigDec = new ...

    bigdecimal

    // 私有构造函数,防止实例化 private Arith() {} /** * 提供精确的加法计算。 * @param v1 第一个加数 * @param v2 第二个加数 * @return 加法结果 */ public static double add(double v1, double v2) {...

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

    - **使用`BigDecimal`的构造函数**:`BigDecimal`提供了多个构造函数,可以直接使用字符串构造精确的数值,如`new BigDecimal("3215.10")`,这样可以确保初始值的精度。 - **使用`BigDecimal`的算术方法**:`...

    Java编写的大数运算

    `BigDecimal`提供了构造函数来创建任意精度的数字,以及多种方法来进行加、减、乘、除等运算,并且可以控制舍入模式,避免浮点数运算中的精度损失问题。 在项目描述中提到了“运用了类的特性”,这通常意味着项目中...

    MyEditTextApplication输入框BigDecimal计算价格

    BigDecimal是Java提供的一个大数类,它可以用来进行精确的浮点数运算,避免了传统浮点数运算中可能出现的精度损失问题。在金融或会计系统中,对数据的精度要求很高,BigDecimal就成为首选的数据类型。 在...

    sonar-JAVA检查规则指南.docx

    在 Java 中,使用“BigDecimal(double)”构造函数可能会导致精度问题。因此,应该使用其他构造函数,例如“BigDecimal(String)”或“BigDecimal(int)”。 这些规则是 SonarQube 中的一些基本内置规则,旨在帮助...

    介绍Java的大数类(BigDecimal)和八种舍入模式

    创建BigDecimal对象有两种主要方式:使用构造函数,如`new BigDecimal("0.09")`,或使用静态方法`BigDecimal.valueOf(0.09)`。建议使用字符串构造方式,以避免因double精度问题导致的误差。在转换或打印BigDecimal...

    浅谈java中BigDecimal的equals与compareTo的区别

    需要注意的是,如果直接使用`BigDecimal`的构造函数传入数字(如double或float),可能会由于浮点数的精度问题导致意外的结果。这是因为数字类型的精度不足以精确表示所有十进制数,可能导致创建的BigDecimal对象...

    Java中使用的常用数学类

    为了应对浮点数运算可能出现的精度问题,Java提供了`java.math`包,其中包含了一些用于精确数学计算的类,比如`BigDecimal`。本文将深入探讨Java中常用的数学类以及如何进行精确的浮点数运算,包括加减乘除、四舍五...

Global site tag (gtag.js) - Google Analytics