如何解释这个极简单的C现象我打这个int main(void) {if (0.1 * 0.1 == 0.01)printf("equal\n");return 0;}没有print任何东西但我打这个int main(void) {if (0.1 * 0.1 - 0.01

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/01 19:36:06

如何解释这个极简单的C现象我打这个int main(void) {if (0.1 * 0.1 == 0.01)printf("equal\n");return 0;}没有print任何东西但我打这个int main(void) {if (0.1 * 0.1 - 0.01
如何解释这个极简单的C现象
我打这个
int main(void) {
if (0.1 * 0.1 == 0.01)
printf("equal\n");
return 0;
}
没有print任何东西
但我打这个
int main(void) {
if (0.1 * 0.1 - 0.01

如何解释这个极简单的C现象我打这个int main(void) {if (0.1 * 0.1 == 0.01)printf("equal\n");return 0;}没有print任何东西但我打这个int main(void) {if (0.1 * 0.1 - 0.01
机器上浮点数的表示和计算都不是绝对精确的,
0.1 * 0.1 计算后的结果不见得恰恰和
0.01 的存储表示完全一致,
故产生那种结果,
而0.1 * 0.1 - 0.01