如题
#include<stdio.h>
int main(){
if(0.99999999999999999 == 1) // 17位
printf("Yes\n");
else
printf("No\n");
if(0.9999999999999999 == 1) // 小数位 共16位
printf("Yes\n");
else
printf("No\n");
}
结果:
Yes
No
原因
- 浮点数默认时double型。
- double 小数位16位
- 浮点数超出精度,会自动四舍五入。
其他
浮点数不能 用 == 比较0