1 回答
TA贡献1712条经验 获得超3个赞
一个实用的解决方案:
没做什么。
数字的差异大约是单个小原子宽度的十分之一,您的测量不可能那么精确。
小数点后第 8 位(数字中有 15 个)代表大约 1.1 毫米的距离。我怀疑你的测量是否准确到这个程度,还有更多的事情变得非常愚蠢。小数点后第 5 位大约为 1.1m,在正常范围内,不受浮点错误的影响。
十进制度数的维基百科页面可能有助于确定哪些值对您的项目是合理的。
一些考虑:
有两个潜在的问题在起作用:
浮点数:
一些可能阐明浮点问题的阅读:
如果您阅读这些内容并了解浮点在实践中的工作原理,您可能会有所启发,并了解正在发生的事情以及如何解决它。
每个程序员都应该了解的关于浮点运算的知识,或者为什么我的数字不相加?
每个计算机科学家都应该了解的关于浮点运算的知识
测量精度:
在我看来,这是更大的问题。您发布的一个号码是
13.519004709972312
,显示为13.519004709972313
。无论该值是否“改变”(见:1),我试图计算这些返回值之间的差异的每个软件计算器0
,这是指示性的。手工计算显示
0.000000000000001
值的差异。也就是说,在尾随 1 之前有 14 个零,或者1^-15
。纬度上的维基百科页面说:
球体上纬度1度的子午线长度为111.2公里。
从这里往回推算,纬度中小数点后 15 位代表的位置差异对应于大约 0.00000011mm或 0.11 纳米的距离。
来自 The Physics Factbook's Diameter of an Atom页面:
一个原子比人类最粗的头发还要小一百万倍。原子的直径范围从大约 0.1 到 0.5 纳米
因此,您的测量值最多会“偏离”单个原子直径的 1/10。
即使我所有的计算都偏离了一百万或十亿倍,距离仍然小到在实践中无关紧要!
- 1 回答
- 0 关注
- 151 浏览
添加回答
举报