浮点数注意事项

来源:互联网 发布:java的编程思想是什么 编辑:程序博客网 时间:2024/05/19 10:41
  1. 两个浮点数不能用”==”精确比较 浮点数只能接近不能相等

if(0.1+0.2==0.3){
System.out.println(true);
}

永远不会输出 浮点数运算时进行舍入 产生溢出数据丢失导致数据是不精确的 故不可直接进行 == 运算

解决办法 : 使用整数,而非浮点数

2 . 运算出现浮动点数问题

1.     运算时   1/a  会出现浮点数   两个整数相除     数值丢失问题

for(int a=20; a>=1;a–){
for(int b=a-1; b>=1;b–){
for(int c=b-1; c>=1;c–){
for(int d=c-1; c>=1;d–){
if(1/a+1/b+1/c+1/d==1){
System.out.println(a+”,”+b+”,”+c+”,”+d);
}

                    }               }          }      }

错误

1.      整数相除数值丢失2.     浮点数不能精确比较、

解决办法:

1.           公式转化   b*c*d+a*c*d +a*b*d+a*b*c==a*b*c*d2.           相减 比较一个精度值                               eg:   a-b<c         a 、b比较
0 0
原创粉丝点击