我想在应用程序中使用公制和英制距离单位。这样做的一种方法是用单元标记数字。我不想走这条路。
我想使用一个内部表示,可以将英制精确地保持在1/64英寸和0.2毫米。我想出了可以被64和254整除的8128 RSU(非常小的单位),这就是我想要的。
这接近2 ^ 13,它让我想知道是否有更优化的方式这样做?
有什么想法吗?
答案 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)
为了避免舍入错误和编程混乱,我的建议是在内部使用一个单元。所以你可以在外面进行转换:
过去,由于单位混乱,有几个项目失败了。