在商品金额的计算中,经常会涉及小数运算。例如,某个商品的价格是1.10元,而顾客现有金额2元整。在计算机中所有数字都是使用二进制进行存储的,而二进制无法精确地表示所有的小数,所以使用基本数据类型进行小数运算会有一些误差,本实例将通过BigDecimal类实现精确的小数运算。
BigDecimal类中常用的方法:
1、加法
该方法实现两个BigDecimal类实例对象的加法运算,并将运算结果作为方法的返回值。
格式:public BigDecimal add(BigDecimal augend)
augend:与当前对象执行加法的操作数
2、减法
该方法实现两个BigDecimal类实例对象的减法运算,并将运算结果作为方法的返回值。
格式:public BigDecimal subtract(BigDecimal subtrahend)
subtrahend:与当前对象执行减法的操作数
3、乘法
该方法实现两个BigDecimal类实例对象的乘法运算,并将运算结果作为方法的返回值。
格式:public BigDecimal multiply(BigDecimal multiplicand)
multiplicand:乘法运算中的乘数
4、除法
该方法实现两个BigDecimal类实例对象的除法运算,并将运算结果作为方法的返回值。
格式:public BigDecimal divide(BigDecimal divisor)
divisor:除法运算中的除数
package com.example; import java.math.BigDecimal; public class AccuratelyFloat { /** * 准确的浮点数操作 * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub double money=2; //现有金额 double price=1.1;//商品价格 double result=money-price;//两个浮点数直接相减的差 System.out.println("直接相减后的结果:"+result);//直接相减后的结果:0.8999999999999999 //使用BigDecimal类进行运算 BigDecimal money1=new BigDecimal("2"); BigDecimal price1=new BigDecimal("1.1"); BigDecimal result1=money1.subtract(price1); System.out.println("精确运算后的值:"+result1);//精确运算后的值:0.9 } }
评论