#include<stdio.h>
void main()
{
float x=1.1;
while(x==1.1)
{
printf("\n%f",x);
x=x-0.1;
}
}
ฉันได้เรียนรู้ว่า while loop อาจเกี่ยวข้องกับตัวเลขทศนิยมด้วย แต่โปรแกรมด้านบนไม่แสดงผลใด ๆ ทำไมจึงเป็นเช่นนั้น?
#include<stdio.h>
void main()
{
float x=1.1;
while(x==1.1)
{
printf("\n%f",x);
x=x-0.1;
}
}
ฉันได้เรียนรู้ว่า while loop อาจเกี่ยวข้องกับตัวเลขทศนิยมด้วย แต่โปรแกรมด้านบนไม่แสดงผลใด ๆ ทำไมจึงเป็นเช่นนั้น?
1.1
คือdouble
ไม่ใช่float
ระวังการแปลงโดยนัย - person Carl Norum   schedule 17.01.2018==
แทบไม่มีประโยชน์สำหรับประเภทจุดลอยตัว - person Christian Gibbons   schedule 17.01.2018x
เป็นการประมาณ 32 บิตที่ใกล้เคียงที่สุดกับ 1.1, 1.100000023841857910156251.1
เป็นการประมาณค่า 64 บิตที่ใกล้เคียงที่สุดกับ 1.1, 1.100000000000000088817841970012523233890533447265625 พวกเขาไม่เท่ากัน - person Patricia Shanahan   schedule 18.01.2018