1、
利用浮点进行循环的时候,计算机不能保证计算机内部转换为二进制后不发生数据丢失,因此随着循环的进行,会发生误差的积累。
#include <stdio.h> int main(void) { int i; float x1 = - 0.01, x2; for(i = 0; i <= 100; i++) { x1 += 0.01; x2 = i / 100.0; printf("x1 = %f | x2 = %f ", x1, x2); } return 0; }
2、
#include <stdio.h> int main(void) { int i; float x1 = 0, x2; for(i = 0; i <= 100; i++) { x2 = i / 100.0; printf("x1 = %f | x2 = %f ", x1, x2); x1 += 0.01; } return 0; }