floating-point - 如何计算 float 和 double 中的小数位数?
问题描述
我对编程很陌生,在大学里我们学习了不同类型的数字(整数、短整数、浮点数、双精度数)。Float 和 double 是浮点数。通常,它们由符号 +/-、尾数和指数组成。每个部分占用一定数量的位。浮点数最多可显示 7 位小数,双倍最多可显示 16 位。其公式为:
23·log10(2)=23·(log(2)/log(10))≈23·0.3≈7(浮点数小数位)
52·0.3≈16(双小数位)
我知道 23 和 52 是尾数的位。但是对数从何而来?这如何计算小数位数?
解决方案
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))
当然,您不能有小数位或小数位,因此您必须根据使用结果的方式向上或向下舍入。
推荐阅读
- python - 无法理解以下熊猫代码
- r - 按周统计活跃的观察
- javascript - 网格中的可排序 jquery 矩形(相对尺寸)
- swift - RxSwift 重新加载动画中的 RxDatasource 不更新数据源
- python-3.x - QTreeWidget 和 QPainter 组合
- macos - 如何在 MacOS 上安装 lua 开发库?
- python - Python中的采访数据:计算由说话者分隔的某个共现
- batch-file - 为什么由于一些奇怪的字符编码问题而无法处理来自文本文件的 wmic 数据?
- ruby-on-rails-5 - Rails 5 Active Storage 回形针式缩略图表单预览
- mongodb - $group 之后未显示 $project $lookup 值