例24:浮動小数点数をより正確に使用
1647 ワード
商品金額の計算では、小数演算に関わることが多い.例えば、ある商品の価格は1.10元で、顧客の既存金額は2元です.コンピュータ内のすべての数値はバイナリで格納されますが、バイナリはすべての小数を正確に表すことができません.したがって、基本データ型を使用した小数演算にはいくつかの誤差があります.この例では、BigDecimalクラスで正確な小数演算を実現します.
BigDecimalクラスでよく使用されるメソッド:
1、加算
この方法は2つのBigDecimalクラスインスタンスオブジェクトの加算を実現し,演算結果を方法の戻り値とする.
書式:public BigDecimal add(BigDecimal augend)
augend:現在のオブジェクトと加算されるオペランド
2、減算
この方法は2つのBigDecimalクラスインスタンスオブジェクトの減算を実現し,演算結果をメソッドの戻り値とする.
書式:public BigDecimal subtract(BigDecimal subtrahend)
subtrahend:現在のオブジェクトと減算するオペランド
3、乗算
この方法は2つのBigDecimalクラスインスタンスオブジェクトの乗算を実現し,演算結果を方法の戻り値とする.
書式:public BigDecimal multiply(BigDecimal multiplicand)
Multiplicand:乗算中の乗数
4、除算
この方法は2つのBigDecimalクラスインスタンスオブジェクトの除算演算を実現し,演算結果をメソッドの戻り値とする.
書式:public BigDecimal divide(BigDecimal divisor)
divisor:除算演算における除算
BigDecimalクラスでよく使用されるメソッド:
1、加算
この方法は2つのBigDecimalクラスインスタンスオブジェクトの加算を実現し,演算結果を方法の戻り値とする.
書式:public BigDecimal add(BigDecimal augend)
augend:現在のオブジェクトと加算されるオペランド
2、減算
この方法は2つのBigDecimalクラスインスタンスオブジェクトの減算を実現し,演算結果をメソッドの戻り値とする.
書式:public BigDecimal subtract(BigDecimal subtrahend)
subtrahend:現在のオブジェクトと減算するオペランド
3、乗算
この方法は2つのBigDecimalクラスインスタンスオブジェクトの乗算を実現し,演算結果を方法の戻り値とする.
書式:public BigDecimal multiply(BigDecimal multiplicand)
Multiplicand:乗算中の乗数
4、除算
この方法は2つの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
}
}