如何计算物理测量的小和大小,以使应用程序在将测量值表示为双倍时不会产生上溢/下溢?
E.g。我对一个平面的距离进行了一些测量,我想在数据集上安装一个平面。我想知道在进行这些测量时我可以离表面有多近以及离我有多远,这样应用的结果是正确的。
在我的程序中,我将测量结果读成双重类型的3元组,以表示R3中的点。所需精度为2或3位小数。
不知道从哪里开始。 。
编辑:我没有试图抓住溢出;我试图分析应用程序的限制。答案 0 :(得分:0)
A double precision floating point number
有大约15位有效数字,其大小可能介于1e-308
到1e308
之间。
假设从测量基准到表面的距离估计约为x
长度单位,表面粗糙度,测量误差和任何其他不确定度约为{{1}以相同的长度单位。 (单位的选择取决于你。)在这里,假设a
相对大于x
是很自然的。
至少需要满足以下限制。
a
的幅度小于约x
。1e308
的幅度大于约a
。 1e-308
大于a/x
。我认为您可以存储有关从月球到地球的距离(1e-15
m)的测量原始数据,以便在双精度浮点数中解析头发(3e8
m)米的单位。
如果您在一个原子层的分辨率下从地球上检测到月球上的光滑表面,则双精度浮点数的15个有效数字可能不足以忠实地表示测量结果。但是,如果您的测量设备本身具有更多有效数字,则可以将平均(或典型)距离1e-5
存储在一个浮点数中,并将测量距离的差值d
存储在平均值中。相应测量的其他浮点数。