为什么i=10.00时循环不结束,是哪写错了吗

#include<stdio.h>
int main()
{
    double i;
    for(i=0;i!=10.00;i+=0.1){
        printf("%.1f\n",i);
        }
    return 0;
}

你可以百度下double 判断相等,double是不能像int一样用 == 判断,因为其本身在机器上存储的特点,会有误差

楼上的代码是正确的

一般来说应该是 fabs(i-10.00)<Epslion更准确

int类型可以直接作比较,浮点数作比较需要一个精度值,可以去网上搜一下浮点数比较

条件是 i 不等于10.00 , 当 i == 10.00 时, 条件就不满足了, 自然不循环

#include<stdio.h>
#define Epslion 1e-8

int main()
{
    double i;
    for(i=0;i+Epslion<10.00;i+=0.1){
        printf("%.1f\n",i);
    }
    return 0;
}