有时,ActiveRecord数据类型会让我感到困惑。额,经常这样。我的永恒问题之一是,在给定的情况下,应该使用 `:decimal` 还是 `:float`?
我经常遇到这个链接:ActiveRecord: :decimal vs :float?,但答案不够清晰,我无法确定:
许多人建议绝对不要使用 float 而始终使用 decimal;也有些人建议仅在科学应用程序中使用 float。
以下是几个示例情况:
- Geolocation/latitude/longitude:-45.756688、120.5777777 等。 - Ratio/percentage:0.9、1.25、1.333、1.4143 等。
过去我使用过 `:decimal`,但与 float 相比,我发现在 Ruby 中处理 BigDecimal 对象非常麻烦。我也知道可以使用 `:integer` 表示货币/分,但对于其他情况,例如数量在其中精度可能随时间变化时,它并不完全适合。
使用每种数据类型的优缺点是什么?有哪些好的经验法则可用于确定使用哪种类型?
我经常遇到这个链接:ActiveRecord: :decimal vs :float?,但答案不够清晰,我无法确定:
许多人建议绝对不要使用 float 而始终使用 decimal;也有些人建议仅在科学应用程序中使用 float。
以下是几个示例情况:
- Geolocation/latitude/longitude:-45.756688、120.5777777 等。 - Ratio/percentage:0.9、1.25、1.333、1.4143 等。
过去我使用过 `:decimal`,但与 float 相比,我发现在 Ruby 中处理 BigDecimal 对象非常麻烦。我也知道可以使用 `:integer` 表示货币/分,但对于其他情况,例如数量在其中精度可能随时间变化时,它并不完全适合。
使用每种数据类型的优缺点是什么?有哪些好的经验法则可用于确定使用哪种类型?
+1.43*2^10
而不是+1.43*10^2
? - Cameron Martin