字符串还是花车?

时间:2010-03-03 18:18:17

标签: mongodb database

我有一个要存储在MongoDB中的产品版本序列号列表,例如

[{"name": "123 > Item A", "serial_number": "123.1"},
 {"name": "123 > Item B", "serial_number": "123.2"},
 {"name": "123 > Item C", "serial_number": "123.3"},
 {"name": "123 > Item D", "serial_number": "123.4"},
 {"name": "124 > Item A", "serial_number": "124.1"}]

我应该为serial_number属性的字符串使用浮点数吗?

4 个答案:

答案 0 :(得分:6)

使用字符串。如果使用浮点数,则可能会出现舍入错误。所以你会得到像123.30000001而不是123.3的数字。

答案 1 :(得分:2)

您也可能有序列号不是完全数字或以前导零开头。序列号不是您想要数学的东西,因此它应该像邮政编码和电话号码一样存储为字符串数据。这些是标识符编号,而不是数学中使用的数字,因此它们实际上是字符串数据,就像名称一样。

实际上我几乎从来没有使用浮动任何东西,因为它是一个不精确的数据类型,它对你想要进行计算的东西很糟糕,而且你可以得到一个数字点;是否准确地进行计算?

答案 2 :(得分:0)

呀。我def会使用字符串。您的序列号可能无法表示为浮点数,因此它可能不完全正确。

对于必须准确的东西,例如序列号,金钱等,建议你永远不要使用花车。

答案 3 :(得分:0)

除非您的序列号在浮点数中无法代表,否则不行。