c语言下1/0会报错,但是1/0.0不会报错,而且还会有输出,怎么回事?
c语言下1/0会报错,但是1/0.0不会报错,而且还会有输出,怎么回事?
日期:2021-08-25 10:11:00 人气:1
前者用整数运算单元计算的,后者用浮点运算单元计算的。两个运算单元对这种情况的处理不同,前者是产生异常,后者是给出INFINITE(无穷大)的结果。
计算机对于浮点数存储是不精确的,于是判断一个值是否为0的方式都是制定一个0.000001的数字,然后用大于-0.000001小于0.000001来判断这样浮点的0是一个很小的数但不是0这样就不会引发除0错误。
0.0其实不是0,由于计算机浮点精度的原因,0.0实际上是一个很接近于0的数,但它不为0。