`

实例24:更精准地使用浮点数

阅读更多

在商品金额的计算中,经常会涉及小数运算。例如,某个商品的价格是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
		
	}

}

 

分享到:
评论
Global site tag (gtag.js) - Google Analytics