`
starbhhc
  • 浏览: 663484 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

BigDecimal类的计算例子

阅读更多
import java.math.BigDecimal;   
import java.math.RoundingMode;   
import java.text.NumberFormat;   
  
public class BigDecimalInvoiceApp {   
  public static void main(String[] args) {   
    double subtotal = 123.123;   
  
    double discountPercent = 0.2;   
    BigDecimal decimalSubtotal = new BigDecimal(Double.toString(subtotal));   
    decimalSubtotal = decimalSubtotal.setScale(2, RoundingMode.HALF_UP);   
    BigDecimal decimalDiscountPercent = new BigDecimal(Double.toString(discountPercent));   
  
    BigDecimal discountAmount = decimalSubtotal.multiply(decimalDiscountPercent);   
    discountAmount = discountAmount.setScale(2, RoundingMode.HALF_UP);   
  
    BigDecimal totalBeforeTax = decimalSubtotal.subtract(discountAmount);   
    BigDecimal salesTaxPercent = new BigDecimal(".05");   
    BigDecimal salesTax = salesTaxPercent.multiply(totalBeforeTax);   
    salesTax = salesTax.setScale(2, RoundingMode.HALF_UP);   
    BigDecimal total = totalBeforeTax.add(salesTax);   
  
    NumberFormat currency = NumberFormat.getCurrencyInstance();   
    NumberFormat percent = NumberFormat.getPercentInstance();   
  
    String message = "Subtotal:         " + currency.format(decimalSubtotal) + "\n"  
        + "Discount percent: " + percent.format(decimalDiscountPercent) + "\n"  
        + "Discount amount:  " + currency.format(discountAmount) + "\n" + "Total before tax: "  
        + currency.format(totalBeforeTax) + "\n" + "Sales tax:        " + currency.format(salesTax)   
        + "\n" + "Invoice total:    " + currency.format(total) + "\n";   
  
    System.out.println(message);   
  
  }   
}   
/*Subtotal:         $123.12  
Discount percent: 20%  
Discount amount:  $24.62  
Total before tax: $98.50  
Sales tax:        $4.93  
Invoice total:    $103.43  
*/  
  
分享到:
评论

相关推荐

    BigDecimal的计算

    接下来是几个具体的计算例子: - **预算资本支付成本** (`budgetCapitalPayCost`):首先获取所有预算资本支付成本 (`allbudgetCapitalPayCost`) 并乘以自有比率 (`shareOwnRate`),然后调用 `getData` 方法来处理...

    BigDecimal向Double转换

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

    BigInteger BigDecimal 使用

    在Java编程语言中,`BigInteger`和`BigDecimal`是两个重要的类,用于处理大整数和高精度浮点数运算。这两个类属于`java.math`包,为开发者提供了超越普通`int`、`long`以及`float`和`double`类型的数值计算能力。 `...

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

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

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

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

    计算圆周率的java程序

    - 对于更精确的计算,可以使用`BigDecimal`类,它支持任意精度的浮点数运算。通过循环和乘法操作,可以计算出任意多位的π值。 3. **大数运算**: - `BigInteger`类:当需要处理大于`long`类型范围的大数时,可以...

    因BigDecimal类型数据引出的问题详析

    在Java编程中,BigDecimal类是处理高精度浮点数计算的关键工具,特别是在金融或会计领域,需要精确到小数点后多位的情况下。然而,BigDecimal在实际应用中可能会引发一些问题,尤其是在进行数值比较时。 首先,我们...

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

    在Java编程语言中,BigDecimal类用于表示任意精度的十进制浮点数,它提供了对大数值计算的精确控制。本文将深入探讨BigDecimal的`equals`方法和`compareTo`方法的区别,这对于处理财务、金融等领域中对精度要求极高...

    Java中如何正确进行浮点数运算

    总之,理解和掌握Java中的浮点数存储和运算特性,以及如何利用`BigDecimal`进行精确计算,是每个Java开发者必备的知识点。在进行浮点数运算时,务必考虑精度问题,并根据实际情况选择合适的方法,以避免潜在的错误和...

    java 计算数学表达式

    2. **精度控制**:浮点数计算可能会有精度问题,根据需求可能需要选择合适的数据类型(如`double`或`BigDecimal`)以及相应的计算策略。 3. **安全考虑**:如果从用户输入接收表达式,需要防止恶意代码注入,例如...

    加减乘除精确算法

    BigDecimal类是Java Math包中的一个成员,它使用任意精度的十进制数来进行计算,避免了浮点数的精度问题。使用BigDecimal进行运算时,我们可以设定运算的精度,即小数点后的位数,以及舍入模式,比如四舍五入、向下...

    通过两点经纬度,计算他们之间的距离 - JAVA

    此外,为了处理精度问题,可以使用`BigDecimal`类进行浮点数运算,避免浮点数误差。 通过了解并实现这个算法,开发者可以为基于位置的应用提供关键功能,如查找最近的商店、计算行驶路线的总距离或者分析地理位置...

    java保留两位小数问题

    `BigDecimal`类提供了高精度的算术运算能力,非常适合用于金融或科学计算中,其中涉及大量的小数计算。下面展示了一个示例代码,演示了如何使用`BigDecimal`来保留两位小数并进行四舍五入操作: ```java double f =...

    第4章 类和对象 java编程

    Java提供了`BigInteger`和`BigDecimal`类,用于处理大整数和高精度浮点数运算,这些类能够避免浮点运算中的精度损失。 4.8 综合应用举例 在实际编程中,类和对象通常被组合使用以解决复杂问题。例如,`Student`类...

    JAVA11培训课堂 2020版 部分笔记.doc

    其次,BigDecimal类则是用于处理大精度浮点数的类,它提供了比Double更高的精度,适合于金融或财务计算。在示例中,我们同样创建了两个BigDecimal对象`numA`和`numB`,并进行相应的加、乘、乘方和除法操作。与...

    xcr常用的工具类

    9. **数学计算工具类**:例如`BigDecimal`用于高精度的浮点数运算,避免浮点数计算的误差问题。 10. **反射工具类**:如Java的`java.lang.reflect`包,允许程序在运行时检查和修改对象的行为。 在实际项目中,根据...

    036-sum-arraylist-bigdecimals-java8

    BigDecimal则是一个用于进行精确浮点数运算的类,它在处理货币、财务计算等需要高精度的场景中非常有用。Java 8引入了许多新特性,如Lambda表达式、Stream API和方法引用,这些都极大地提高了代码的简洁性和效率。 ...

    长方形和正方形的周长jsp(1).ppt

    在这个例子中,`request.getParameter`用于获取用户输入的边长值,`BigDecimal`类用于进行精确的浮点数运算,避免了浮点数计算中的精度问题。 此外,文件中还提到选择题,涉及到根据已知周长或边长求解正方形的其他...

    山东理工大学java题目的ac题

    - **`java.math.*`**:此包提供了处理大数值的类(如BigInteger、BigDecimal等),这些类可以用来进行高精度计算。 ### 2. 类定义与对象创建 该示例代码定义了一个名为`S`的类,用于处理分数的加减乘除运算。此外...

    JAVA基础 第一篇:素数、合数、质数分解、最大公约数、最小公倍数.docx

    这些方法使用了BigDecimal类,确保了在处理大整数时的精度。在主方法中,我们可以调用这些方法来计算任意两个数的GCD和LCM。 总之,理解并熟练掌握素数、合数、质数分解、最大公约数和最小公倍数的概念及计算方法,...

Global site tag (gtag.js) - Google Analytics