公制和帝国内部代表

时间:2010-11-30 10:32:13

标签: math units-of-measurement

我想在应用程序中使用公制和英制距离单位。这样做的一种方法是用单元标记数字。我不想走这条路。

我想使用一个内部表示,可以将英制精确地保持在1/64英寸和0.2毫米。我想出了可以被64和254整除的8128 RSU(非常小的单位),这就是我想要的。

这接近2 ^ 13,它让我想知道是否有更优化的方式这样做?

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

稍微简单的解决方案可能是使用“其他小型装置”,使1 OSU = 1/320 mm。根据这个惯例,1/64“将是127 OSU,0.2mm将是64 OSU。由于127和64是相对质数,这是你可以获得的最低分母。

答案 1 :(得分:1)

在这个Q& A中搜索其他内容(如何从浮点数转到公制单位前缀)并认为我将分享一个我见过的实现。

Mentor Graphics'PADS Layout是一种印刷电路板(PCB)布局程序,可以处理三种尺度:英寸,毫米和密耳(1密耳= 0.001英寸),最后一个是美国行业标准测量之一。这是一个浮点舍入误差导致产品缺陷或无法使用的商业。

为了在内部表示坐标,他们使用他们所谓的“基本”单位,正好是2/3 nm。因此,毫米级的基本单位为1.5e6,密度为38100。这使得它们表示0.01千分之一英寸或10纳米的距离作为这些“基本”单元(分别为381和15)的整数。使用32位整数作为坐标,每个轴上的工作空间刚好超过112英寸(2.86米)。

答案 2 :(得分:0)

为了避免舍入错误和编程混乱,我的建议是在内部使用一个单元。所以你可以在外面进行转换:

  • GUI
  • 导入/导出
  • 可能是数据库,但最好将其留给内部单元,除非您被迫使用该数据库。

过去,由于单位混乱,有几个项目失败了。