首页 > 解决方案 > 如何计算 float 和 double 中的小数位数?

问题描述

我对编程很陌生,在大学里我们学习了不同类型的数字(整数、短整数、浮点数、双精度数)。Float 和 double 是浮点数。通常,它们由符号 +/-、尾数和指数组成。每个部分占用一定数量的位。浮点数最多可显示 7 位小数,双倍最多可显示 16 位。其公式为:

23·log10(2)=23·(log(2)/log(10))≈23·0.3≈7(浮点数小数位)

52·0.3≈16(双小数位)

我知道 23 和 52 是尾数的位。但是对数从何而来?这如何计算小数位数?

标签: floating-pointdouble

解决方案


23 位可以表示 2 23个值。N 个十进制数字可以表示 10 N个值。

可以表示与 23 位相同的一组值的小数位数的计算简化为求解等式中的 N:

2 23 = 10

对数(2 23)=对数(10 N

23*log(2) = N*log(10)

N = 23*(log(2)/log(10))

当然,您不能有小数位或小数位,因此您必须根据使用结果的方式向上或向下舍入。


推荐阅读