C语言强制类型转换 为什么 完整结果是1.83333333333333333333 他只取了前6位1.833333
提示: 作者被禁止或删除 内容自动屏蔽
# include <stdio.h> int main(void) { int i; float sum = 0; for (i=1; i<=3; ++i) { sum = sum + 1 / (float)(i); } printf("sum = %.20f\n", sum); return 0; }结果是:sum = 1.83333337306976320000
# include <stdio.h> int main(void) { int i; double sum = 0; for (i=1; i<=3; ++i) { sum = sum + 1 / (double)(i); } printf("sum = %.20lf\n", sum); return 0; }结果是:sum = 1.83333333333333330000