【发布时间】:2019-11-15 19:15:18
【问题描述】:
我是编程新手,在大学里我们学习了不同类型的数字(整数、短整数、浮点数、双精度数)。 Float 和 double 是浮点数。通常,它们由符号 +/-、尾数和指数组成。每个部分占用一定数量的位。 浮点数最多可显示 7 位小数,最多可显示 16 位。 公式是:
23·log10(2)=23·(log(2)/log(10))≈23·0.3≈7(浮点数的小数位)
52·0.3≈16(double 的小数位)
我知道 23 和 52 是尾数的位。但是对数从何而来?这如何计算小数位数?
【问题讨论】:
-
您必须对二进制格式的十进制解释有点小心。例如,
0.009999994和0.009999993都有 7 个有效十进制数字,但 IEEE 754 binary32 浮点数的分辨率不足以区分它们:在通常的最近舍入下,两者都将映射到相同的 binary32浮动。
标签: floating-point double