c语言下1⼀0会报错,但是1⼀0.0不会报错,而且还会有输出,怎么回事?

2025-02-25 14:23:25
推荐回答(1个)
回答1:

前者用整数运算单元计算的,后者用浮点运算单元计算的。两个运算单元对这种情况的处理不同,前者是产生异常,后者是给出INFINITE(无穷大)的结果。

计算机对于浮点数存储是不精确的,于是判断一个值是否为0的方式都是制定一个0.000001的数字,然后用大于-0.000001小于0.000001来判断这样浮点的0是一个很小的数但不是0这样就不会引发除0错误。

0.0其实不是0,由于计算机浮点精度的原因,0.0实际上是一个很接近于0的数,但它不为0。