看到一串代码
int a=1099;
int b=93;
float num= (float)a/b;
我记得浮点数做运算会丢失精度,例如
public class Test{
public static void main(String args[]){
System.out.println(0.05+0.01);
System.out.println(1.0-0.42);
System.out.println(4.015*100);
System.out.println(123.3/100);
}
}
结果:
0.060000000000000005
0.5800000000000001
401.49999999999994
1.2329999999999999
像这样两个整形数相除获得浮点数,会有精度问题么?
补充:
如果是取小数点后几位的话,这样计算的结果可靠么?
数学中的小数是无限的,计算机中的能表示的浮点数是有限的,肯定有精度问题啊.
输出结果:
401.49999999999994
所以取小数点后几位并不可靠.