5.精度问题
void main() {
float f = 1 / 3.0;
float f_1 = 0.33333333;
if (f == f_1) {
printf("Equal\n");
}
else {
printf("NO Equal\n");
}
上述程序运行结果为Equal,而下边代码运行结果为No Equal,产生这个的原因是因为在计算机中,浮点数表示精度位数有限,所以在浮点数比较时,不建议使用==、<=、!=等比较运算符。
void main() {
float f = 1 / 3.0;
float f_1 = 0.3333333;
if (f == f_1) {
printf("Equal\n");
}
else {
printf("NO Equal\n");
}