public?class?Temp?{
static?double?partde(double?x)?{?//?獲得?x?的小數部分
BigDecimal?bd?=?BigDecimal.valueOf(x);
//?減去整數值
BigDecimal?de?=?bd.subtract(new?BigDecimal(bd.intValue()));?
return?de.doubleValue();
}
public?static?void?main(String[]?args)?throws?Exception?{
boolean?test1?=?(partde(2.0234)?==?0.0234);
boolean?test2?=?(partde(5.856)?==?0.856);
boolean?test3?=?(partde(6.12)?==?0.12);
boolean?test?=?test1?&&?test2?&&?test3;
System.out.println(test);?//?true
}
}
所以說 float 和 double 只能用來做科學計算或者是工程計算(會損失精度,因為有些小數二進制無法表示,比如0.6,采用乘2法,0.6->0.2->0.4->0.8->0.6,只能是無限循環,二進制表示的數只能逼近0.6),在商業計算中我們壹定要用java.math.BigDecimal