Perulangan while yang melibatkan angka floating point [duplikat]

#include<stdio.h>
void main()
{
 float x=1.1;
 while(x==1.1)
 {
     printf("\n%f",x);
     x=x-0.1;
 }
}

Saya telah mempelajari bahwa while loop juga dapat melibatkan angka floating point tetapi program di atas tidak menampilkan output apa pun. Kenapa gitu ?


person Aksh    schedule 17.01.2018    source sumber
comment
Petunjuk: 1.1 adalah double, bukan float. Hati-hati dengan konversi implisit.   -  person Carl Norum    schedule 17.01.2018
comment
== hampir tidak berguna untuk tipe floating point.   -  person Christian Gibbons    schedule 17.01.2018
comment
@dbush: Mohon jangan sembarangan menandai pertanyaan floating-point sebagai duplikat dari pertanyaan itu . Floating-point memiliki banyak properti dan fitur yang dapat ditanyakan dan dijawab secara individual. Pertanyaan ini memiliki kode sumber yang pada dasarnya identik dengan pertanyaan ini, yang jauh lebih cocok dengan pertanyaan asli.   -  person Eric Postpischil    schedule 18.01.2018
comment
Dengan asumsi aritmatika floating point biner IEEE 754, x adalah perkiraan 32-bit terdekat dengan 1.1, 1.10000002384185791015625. 1.1 adalah perkiraan 64-bit terdekat dengan 1.1, 1.100000000000000088817841970012523233890533447265625. Mereka tidak setara.   -  person Patricia Shanahan    schedule 18.01.2018
comment
@EricPostpischil Tidak hanya kode sumbernya, pertanyaannya sendiri juga sama. Sepertinya kedua poster tersebut mempunyai pekerjaan rumah yang sama.   -  person Bob__    schedule 18.01.2018
comment
@Bob__: 1.1 populer: 1, 2, 3, 4.   -  person Eric Postpischil    schedule 18.01.2018