2

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

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

这接近 2^13,这让我想知道是否有更优化的方法来做到这一点?

有任何想法吗?

4

3 回答 3

1

一个稍微简单的解决方案可能是使用“其他小型单位”,以便 1 OSU = 1/320 mm。按照这个约定,1/64" 将是 127 OSU,0.2mm 将是 64 OSU。由于 127 和 64 是相对质数,因此这是您可以获得的最小分母。

于 2010-11-30T13:35:09.057 回答
1

在这个问答中搜索其他内容(如何从浮点数转换为公制单位前缀),并认为我会分享我见过的一个实现。

Mentor GraphicsPADS Layout是一个印刷电路板 (PCB) 布局程序,可以处理三个尺度:英寸、毫米和密耳(1 密耳 = 0.001 英寸),其中最后一个是美国行业标准测量之一。这是一项业务,其中浮点舍入误差的不精确性会导致产品有缺陷或无法使用。

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

于 2011-05-25T23:09:55.957 回答
0

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

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

过去,有几个项目因为单位混乱而失败。

于 2010-11-30T11:08:51.303 回答