发布网友 发布时间:2022-03-05 05:57
共1个回答
热心网友 时间:2022-03-05 07:27
并不是不准,而是依靠二进制无法表示3.1415926,只能近似表示成3.1415925
应当说,虽然有以上不准,并不是有效位问题(位数长度问题),而是进制表示问题;因此无论是x和y的有效位仍然是小数点后7位,在计算y时,由于和数中0.0000005的默认类型是double型,因此在计算x+0.0000005时,程序是按照double型计算的,因此得到正确答案,然后再通过强制数据类型转换成float型数据赋值给y,这也说明了y的有效位数是7