#include<stdio.h>
void main()
{
float x=1.1;
while(x==1.1)
{
printf("\n%f",x);
x=x-0.1;
}
}
Я узнал, что цикл while может также включать числа с плавающей запятой, но приведенная выше программа не показывает никакого вывода. Почему это так ?
1.1
этоdouble
, а неfloat
. Остерегайтесь неявных преобразований. - person Carl Norum   schedule 17.01.2018==
почти бесполезен для типов с плавающей запятой. - person Christian Gibbons   schedule 17.01.2018x
является ближайшим 32-битным приближением к 1.1, 1.10000002384185791015625.1.1
является ближайшим 64-битным приближением к 1.1, 1.1000000000000000088817841970012523233890533447265625. Они не равны. - person Patricia Shanahan   schedule 18.01.2018