java double 做减法溢出数据库有几个double类型的数字,有正的也有负的0.1*0.1+0.2*0.2+(-0.3)*0.3但结果不是-0.04
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/27 15:14:44
xUKK@+=$V7ZuI"6iH6"=b)TEVEZ4?ñmIS|fͰГk8Cie1doڅ}ȩ]څstv9۵s_Ҟ{
r<
ir2oe#h|pEGXXc)՟-G&jC鎝qz2 q̬(H
ߪnR!AkVySLVShgX
̌q|A$P cӤuP6S8Ii)XREbHjfy.a#c}f9si0j}nuԩz;xb0L$]1x.5
OM-Ģl'>F
l%= |J.x>582-X [-W9
,t82ѫ` ˖Ȱ6;Oy83u6w v
java double 做减法溢出数据库有几个double类型的数字,有正的也有负的0.1*0.1+0.2*0.2+(-0.3)*0.3但结果不是-0.04
java double 做减法溢出
数据库有几个double类型的数字,有正的也有负的
0.1*0.1+0.2*0.2+(-0.3)*0.3
但结果不是-0.04
java double 做减法溢出数据库有几个double类型的数字,有正的也有负的0.1*0.1+0.2*0.2+(-0.3)*0.3但结果不是-0.04
用BigDecimal计算
import java.math.MathContext;
public class $ {
public static void main(String[] args) {
// 0.1*0.1+0.2*0.2+(-0.3)*0.3
// 0.1*0.1+0.2*0.2-0.3*0.3
BigDecimal a = new BigDecimal(0.1);
a = a.multiply(a, MathContext.DECIMAL32);
BigDecimal b = new BigDecimal(0.2);
b = b.multiply(b, MathContext.DECIMAL32);
BigDecimal c = new BigDecimal(0.3);
c = c.multiply(c, MathContext.DECIMAL32);
a = a.add(b, MathContext.DECIMAL32);
a = a.subtract(c, MathContext.DECIMAL32);
System.out.println(a.doubleValue());
}
}
-0.04