0

我正在建立一个在线商店,并希望能够为产品指定各种测量值。诸如宽度/高度和重量之类的东西。

以宽度为例,他们会输入一个值,然后选择mm, cm, m等。

然后,应用程序会将其转换为相同的基本单位,比如 mm,以便在整个应用程序中轻松使用。

做这种事情的好模式是什么?我在想一些事情:

id     name     factor
1      mm       1
2      cm       0.1
3      m        0.001
...

然后我可以做 $userValue / $factor = $normalised。这可能需要一个连接表,其中包含以下内容:

id name
1  length
2  weight
...

这是实现这一目标的最佳方式吗?

4

2 回答 2

0

强烈建议您采取任何措施来避免浮点数。如果您将 0.001 作为浮点数存储在数据库中,您最终可能会得到 0.00099999999982713 的实际值,这可能会导致与您的意图发生微小但令人讨厌的偏差。

将这些表示为您愿意使用的某个“最小”单位的整数值会更好。例如,千分尺,并将所有值转换为此等效度量。这是在大多数系统中为货币所做的,以避免残酷的舍入错误。

于 2012-10-04T20:25:12.797 回答
0

查看 UNIXunits功能的工作原理。它由数据文件驱动,并有望解决一些令人讨厌的问题。

http://www.linuxmanpages.com/man1/units.1.php

于 2012-10-04T20:39:48.893 回答