浮点数注意事项

xiaoxiao2021-02-28  105

两个浮点数不能用”==”精确比较 浮点数只能接近不能相等

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*d 2. 相减 比较一个精度值 eg: a-b<c a 、b比较
转载请注明原文地址: https://www.6miu.com/read-61775.html

最新回复(0)