【问题标题】:Structuring data in a conversion app [closed]在转换应用程序中构建数据[关闭]
【发布时间】:2016-09-25 18:22:29
【问题描述】:

在应用程序中,我需要在公制、英制和美制之间转换值,例如公斤到石头 + 磅 (UK) 到磅 (US)。如何最好地存储用户输入的数据?

将所有输入的值转换为例如是否更好?度量并保存为浮点数,还是将用户输入的数据保留为文字字符串并在每次应用程序启动时进行解释?

数学/方程式等都很好,更了解在数据库中存储可以以不同方式表示的值最有效的结构是什么?

【问题讨论】:

  • 我建议将度量值作为“字符串”存储在数据库中。因为有时从一个平台到另一个平台的数字内部表示会丢失较小的十进制值。
  • 是的,我不确定是否有一个单一的“公分母”数字系统,或者只是将值保留为字符串,然后根据具体情况进行逻辑解释。
  • 字符串是处理十进制数时最好的数据类型。然后,您可以在您的平台中将字符串转换为数字。
  • @Kampai 取决于您所说的最佳。如果您希望保持疯狂的精度,这可能是一个不错的选择,但在性能方面它很糟糕。
  • 因基于意见而搁置?必须有一种特定的数据结构方式比另一种更有效,它只会在我和其他人缺乏专业知识来给出更明确的答案的情况下征求意见。

标签: ios objective-c database architecture structure


【解决方案1】:

这真的取决于您需要什么精度。将值存储为 String 可能是安全的,但效率极低。对于简单的 1 到 1 值转换,它可能足够有效。对于转换数千个值,它可能不会。

我会使用代表用户能够手动输入的最复杂值的标量类型。从这些原始值派生计算以避免失去复杂性。

注意:由于您处理的是真实世界的值(我想),如果您要使用标量值类型,请放弃符号并使用无符号变体。

【讨论】:

    【解决方案2】:

    这是我使用的方法,创建一个名为 WeightObject 的 NSObject,它有 2 个属性L

    1-用户输入的值(例如3)

    2- 用户使用的单位,例如:(公斤/磅等)。

    最后保存对象。这样,您就可以完全按照用户输入的方式保存记录,并且您可以在对象内部创建方法以返回 KG 或 punds 等中的值...

    所以稍后你说 float x = myWeightObject.KilosValue

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-17
      • 1970-01-01
      • 2011-09-07
      • 2012-12-24
      • 2012-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多