double i; for(i = 0; i != 10; i += 0.1) printf("%.1lf\n", i...
发布网友
发布时间:2024-09-26 03:39
我来回答
共4个回答
热心网友
时间:2024-11-08 08:14
为什么要用i!=10,用i<10不行吗,c语言中double类型数据计算是有误差的,也就是说你每次加0.1,可能永远得不到整10,有可能是0.900001
热心网友
时间:2024-11-08 08:22
把i!=10改为i<10就行了
#include <iostream>
using namespace std;
int main()
{
float i;
for(i = 0; i <= 10.0; i += 0.1)
printf("%.1lf\n", i); //输出结果为何是死循环?
}
热心网友
时间:2024-11-08 08:16
看错了,呵呵
符点数除去2的N次方外,其他的数都是近似值,如0.1,所以i永远不会等于10.
你打出的10.0并不是10.0,是因为你用的%.1lf输出的原因,你换作%.100lf输出试一下!看看结果是什么。
热心网友
时间:2024-11-08 08:18
i是不整形,i第次加0.1,不可能等于10,面是10.000000