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