我有一个要存储在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
属性的字符串使用浮点数吗?
答案 0 :(得分:6)
使用字符串。如果使用浮点数,则可能会出现舍入错误。所以你会得到像123.30000001而不是123.3的数字。
答案 1 :(得分:2)
您也可能有序列号不是完全数字或以前导零开头。序列号不是您想要数学的东西,因此它应该像邮政编码和电话号码一样存储为字符串数据。这些是标识符编号,而不是数学中使用的数字,因此它们实际上是字符串数据,就像名称一样。
实际上我几乎从来没有使用浮动任何东西,因为它是一个不精确的数据类型,它对你想要进行计算的东西很糟糕,而且你可以得到一个数字点;是否准确地进行计算?
答案 2 :(得分:0)
呀。我def会使用字符串。您的序列号可能无法表示为浮点数,因此它可能不完全正确。
对于必须准确的东西,例如序列号,金钱等,建议你永远不要使用花车。
答案 3 :(得分:0)
除非您的序列号在浮点数中无法代表,否则不行。