float型数值精确到7位是什么意思?是说的小数点后面精确到7位,也就是123.1234567的那个7都可以精确出来还是说的精确到4那个地方?
那0.00123456789这样的是精确到4还是7?
追答0.001234567**
追问??
怎么会?
追答7位“有效数字”
追问确定?
追答当然确定
我之前那些话都白写了吗
大神,,我觉得你讲的确实不错,,请问您是做什么的?
理由
那0.00123456789这样的是精确到4还是7?
追答0.00123456789可以精确到7,因为“精确”是对有效数字而言的。float型的二进制结构是32位,其中23位用来表示尾数,还有一位固定1,所以能确定精度的共24位,2^24是个8位十进制数,由于浮点数的二进制表示有误差,所以只有7位是可靠精确的。至于有效数字1前面的0.00……它则是用阶码表示的,都是整数,所以是精确的。如果这个数是9.00123456789,则只精确到4,因为“有效数字”从第1位就开始了……供参考。
为什么
追答123.1234 在内存里是1.231234E2
追问也就是说精确到多少位不是说的有效数字,也不是小数点后的,而且从左往右输出来是多少就是多少?
追答float存储方式就是一位整数,6位小数,以及乘以10的多少次方
所以就是你说的从左往右算6或7位
追问终于遇到个靠谱的了。。不过可惜了
大神你做什么的啊
那0.00123456789这样的是精确到4还是7?
追答0.000123456789
也会存储为 1.234567E-4
也就是1.234567x10^(-4)
追问那这是精确到4还是7啊
追答这不是一共就7位小数吗