`

货币计算为什么使用BigDecimal

    博客分类:
  • java
阅读更多
double d = 29.0 * 0.01;
System.out.println(d);
System.out.println(d * 100);
System.out.println((int) (d * 100));

  输出:
0.29
28.999999999999996
28


float f = (float) (29.45*0.01);
System.out.println(f);
System.out.println(f * 100);
System.out.println((int) (f * 100));

  输出:
0.2945
29.449999
29


//需要使用String初始化对象
BigDecimal x = new BigDecimal("500000000.00");
BigDecimal y = new BigDecimal("0.6");
BigDecimal z = x.multiply(y);
System.out.println(">>>>>>>>>> "+z);
>>>>>>>>>> 300000000.000

BigDecimal x2 = new BigDecimal(500000001);
BigDecimal y2 = new BigDecimal(0.6);
BigDecimal z2 = x2.multiply(y2);
>>>>>>>>>> 300000000.59999998889776973154397410326055251061916351318359375
System.out.println(">>>>>>>>>> "+z2);


BigDecimal equals 
     * this method considers two BigDecimal objects 
     * equal only if they are equal in value and scale
     * thus 2.0 is not equal to 2.00 when compared by this method.


分享到:
评论
1 楼 h416373073 2017-03-02  

相关推荐

    MyEditTextApplication输入框BigDecimal计算价格

    在Android应用开发中,我们经常需要处理用户在输入框(EditText)中输入的数据,特别是涉及到货币计算时,精确的数值处理变得尤为重要。本项目“MyEditTextApplication”专注于使用BigDecimal进行输入框内的价格计算...

    BigDecimal计算

    由于浮点数(如`float`和`double`)在计算机中是以近似值存储的,这可能导致计算结果的不精确性,尤其是在进行货币计算时。`BigDecimal`解决了这个问题,提供了精确的十进制运算。 `BigDecimal`对象由一个非空的十...

    java BigDecimal操作

    总的来说,理解和熟练运用BigDecimal是每个Java开发者必备的技能之一,特别是在处理货币计算、财务计算等场景时,能够避免因为浮点数精度问题导致的错误。在使用BigDecimal时,一定要注意其性能开销,因为它比基本的...

    javascript版BigDecimal类库

    5. **格式化输出**:可以将`BigDecimal`对象转换为字符串,支持定制小数位数、千位分隔符、货币符号等格式。 6. **数学函数**:提供如平方根(`sqrt`)、指数(`pow`)、取模(`mod`)等数学运算,确保结果的高精度...

    bigdecimal

    #### 二、为什么需要BigDecimal? 在Java中,`float` 和 `double` 类型是基于IEEE 754标准的浮点数类型。尽管它们可以存储非常大的范围内的值,但在某些情况下会丢失精度。例如,在处理货币时,即使是微小的误差也...

    BigDecimal向Double转换

    - **金融计算**:由于货币计算通常需要非常高的精度,BigDecimal非常适合这类应用场景。 - **科学计算**:在科学研究领域,对于精度要求极高的计算场景,BigDecimal也常常被采用。 - **避免浮点数运算误差**:在处理...

    运用BigDecimal精确计算

    在处理货币计算、金融数据或其他需要精确数值计算的场景中,`BigDecimal`是不可或缺的工具。 1. 创建BigDecimal对象: 创建`BigDecimal`对象通常有两种方式,一是通过`new BigDecimal(String)`构造器,二是通过`...

    js_bigdecimal_1_0_1.zip

    BigDecimal是一种可以表示任意精度的十进制浮点数的类,主要用于财务、货币和其他需要精确计算的场景。在Java中,有内置的`java.math.BigDecimal`类,但JavaScript原生并不支持这样的数据类型。因此,"js_bigdecimal...

    Bigdecimal.js

    这对于显示给用户的结果尤为重要,因为通常我们希望以一种易于理解的方式展示货币或其他精确数值。 此外,由于标签中提到了HTML,我们可以将`Bigdecimal.js`与HTML结合,通过JavaScript控制DOM元素来动态更新页面上...

    Java中BigDecimal类的简单用法

    }}这段代码中,我们使用了BigDecimal的乘法操作multiply(),它允许我们进行精确的乘法计算,避免了浮点数计算中的误差。同样,我们也使用了减法操作subtract(),来进行精确的减法运算。在实际开发中,BigDecimal类...

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

    首先,为什么浮点数不是精确值?根据 IEEE 754 标准,浮点数用科学记数法以底数为 2 的小数来表示,包括 1 位表示数字的符号、8 位表示指数、23 位表示尾数。这种表示方法会导致舍入误差,影响计算结果的精度。 ...

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

    Java中的`BigDecimal`类是用于表示和操作高精度浮点数的重要工具,尤其适用于需要进行精确计算的场景,如财务和货币计算。由于基本数据类型`double`和`float`在进行大数值或高精度计算时可能会导致精度丢失,因此`...

    Java的数学运算处理类讲解代码(BigDecimal、Math、Random、DecimalFormat类全部操作方法API)

    舍入规则控制:当需要精确控制数字舍入规则时,如货币计算、统计分析等。 随机数生成:当需要生成伪随机数以支持随机性需求时,如游戏开发、密码生成等。 目标: 理解BigDecimal类的使用,并了解如何处理大数精度...

    Java编程BigDecimal用法实例分享

    与float和double不同,BigDecimal类可以精确地计算货币值等,适合在商业计算中使用。 创建BigDecimal对象有多种方法,包括使用double类型的构造方法、String类型的构造方法和静态方法valueOf()。但是,不建议使用...

    BigDecimal基本运算介绍

    `BigDecimal` 类是 Java 中用于高精度浮点数计算的关键工具,主要解决 `float` 和 `double` 类型在处理货币、财务等需要精确计算场景时存在的精度问题。`BigDecimal` 的运算方式与基本数据类型有所不同,因为它涉及...

    Java BigDecimal类用法详解

    Java中的`BigDecimal`类是用来表示任意精度的十...在进行货币计算或其他需要精确结果的场景下,`BigDecimal`是不可或缺的选择。在使用过程中,了解其特性和方法,以及如何避免浮点数精度问题,是确保程序正确性的关键。

    Java中使用BigDecimal进行精确运算

    在Java编程语言中,进行精确的数值计算是一个重要的需求,特别是在金融、会计和其他对精度有严格要求的领域。...在编写涉及到货币计算或其他需要高精度计算的代码时,应优先考虑使用BigDecimal类。

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

    总结起来,`BigDecimal`是Java中用于高精度数学计算的类,适合处理财务、货币或其他需要精确数值计算的场景。而`double`和`float`则适用于对精度要求不高的科学计算。在使用`BigDecimal`时,需要注意其构造方法和...

    Java中BigDecimal精度和相等比较的坑

    在Java编程中,`BigDecimal` 类是用来处理高精度、任意精度的十进制数的,尤其适用于财务和货币计算,因为它能确保计算结果的精确性。`float` 和 `double` 类型虽然在科学计算和工程计算中广泛使用,但它们无法提供...

    Joda-Money-用于表示货币金额的Java库

    它为Java开发者提供了一套强大的工具,以应对在金融计算和货币操作中遇到的各种挑战。在这个库中,货币金额被表示为`Money`对象,它包含了丰富的API来执行各种货币相关的操作。 ### 1. 类型与对象 Joda-Money的...

Global site tag (gtag.js) - Google Analytics