求:5位小数用单精度变量输入,再用12位输出,值改变

img

img

img


有人救一下吗?为啥单精度输入一个数,输出就不一样了。我用单精度变量接收5位小数,然后固定12位小数输出,但输出的5位小数后不都是0,这后面的值是哪来的?

单精度的有效位数没有那么多啊,后面都是精度误差造成的无效位数

单精度一共6-7位有效数字(因为实际存的是2进制,而显示出来是10进制,除不尽,所以数字位数不是一个整数)
你输入了10位有效数字,本身已经溢出了
别说按12位输出了,你原封不动的输出都已经变了
这就好比你把257赋值给一个byte,再显示出来肯定不是257了呀