有人可以解释我为什么这不打印你好?
int main(){
float i;
i=1.2;
while (i==1.2){
printf("hello");
}
计算机只存储数字信息。整数可以用二进制准确表示,但浮点数是近似的。
似乎在近似值中,额外的微小值会阻止您的精确比较为真。
现在是谷歌“每个程序员应该知道的关于浮点数的知识”并阅读它的好时机。如果您尽早学习,它将为您节省无数小时的未来编程和调试时间。
此外,还有两种浮点类型“float”和“double”。您正在将浮点数与双精度数进行比较,因此该值的近似值可能不是相同的近似值,从而更有可能使两个值不相等。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句