如何处理厘米/英寸

时间:2011-05-18 15:33:20

标签: rounding inches

我有一个处理人员长度和重量的国际应用程序,并将它们存储在数据库中。我想知道如何处理这个问题,以防用户在应用程序中使用厘米/英寸进行切换。

我想在数据库中始终使用厘米,如果用户选择使用英寸,则转换为英寸。但是,当然,如果用户以英寸为单位输入长度并将其转换为厘米,则由于舍入误差,该值可能会略有变化。

你会如何处理这种情况?

谢谢, →

7 个答案:

答案 0 :(得分:2)

除了可用的信息之外,您的问题还有很多需要考虑的地方。在决定如何存储和转换信息之前,您必须知道可接受的错误是什么。例如,如果你正在计算用另一枚导弹拦截入射导弹的轨迹,那么成功需要非常精确的精确度。如果这是一种医学应用并用于精确控制药物配方,那么精确到比仅仅计算BMI更为重要。

简而言之,选择一个标准,无论是公制还是其他,并坚持使用您的存储类型。根据所需的精度,选择最小的测量系统单元,为您提供所需的精度。所有不同测量系统的单位显示都将从该基础测量中转换。

尽量不要过度设计解决方案。如果测量到小数点后52位是不可能的,那么你就是在浪费精力并为这种情况注入不必要的并发症。

答案 1 :(得分:1)

我个人会使用两种方法中的一种。

  1. 始终以相同的计量单位存储
  2. 将度量单位存储在单独的字段中,以便您知道单位是CM还是英寸。
  3. 我更喜欢第一种方法,因为它更容易处理。

答案 2 :(得分:1)

如果您将英寸转换为厘米,并且从厘米转换为英寸,则会出现舍入错误。无论你在数据库中存储什么,问题都是一样的。

您可以在数据库中以厘米为单位存储值,但以毫米为单位。所以我认为单位是多么小,所以即使在转换的情况下它也会更精确。

答案 3 :(得分:1)

如果同一个用户应该能够在前端切换,你肯定应该在一个单位中存储一个代表该值的字段,因为无论如何都会发生舍入错误。

如果你有一组用户只处理英寸而另一组只处理cm并且每个组都有一个数据库或至少有“自己的值”,那么决定两个字段,值/单位(例如相同的软件) ,不同国家的不同客户安装)

我存储的非浮点值代表微米(无符号32位,你可以表示从4.2公里到0.001毫米的所有内容)。

答案 4 :(得分:0)

除非您存储转换率,否则不确定为什么需要数据库

没有办法删除公制或帝国,因为它们只是数字

您的舍入错误将根据您希望显示的准确度发生....

答案 5 :(得分:0)

取决于您将要对这些值进行的操作(是否需要在DB层进行大量聚合等),确保没有累积舍入错误的最佳方法是存储在原始单元中在单独的列中使用该度量单位(id)的度量,并且具有单独的转换表,用于比较,混合等时的动态计算。

这不会超级高效或方便,但是:在对存储的值进行任何处理之前,您将始终必须加入转换表。

答案 6 :(得分:0)

我们可以非常简单地完成任务。我们只有将英寸转换为厘米的系数以及我们没有保存到DB中的所有计算和结果。我们只能乘以或除以比率的数字,我们得到结果。所以如果你有cm需要乘以比率并得到结果。您可以通过我在2分钟内找到它的示例了解它是如何工作的:http://inchpro.com/metric-system/convert-inches-to-centimeters 我想你知道存储数据库中的所有值占用了很多空间。