Струны или Поплавки? - PullRequest
       6

Струны или Поплавки?

1 голос
/ 03 марта 2010

У меня есть список серийных номеров редакции продукта для хранения в 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 ]

6 голосов
/ 03 марта 2010

Используйте строки. Если вы используете float, вероятно, у вас будут ошибки округления. Таким образом, вы получите числа вроде 123.30000001 вместо 123.3.

2 голосов
/ 03 марта 2010

Возможно также, что у вас есть серийные номера, которые не являются полностью числовыми или начинаются с начальных нулей. Серийный номер - это не то, с чем вы когда-либо хотите заниматься математикой, поэтому его следует хранить в виде строковых данных, как почтовые индексы и номера телефонов. Это номера идентификаторов, а не числа, используемые в математике, и, таким образом, они действительно являются строковыми данными, как и name.

На самом деле я почти никогда не использую float для чего-либо, поскольку это неточный тип данных, и это плохо для вещей, по которым вы хотите делать вычисления, и в чем заключается точка числа, на котором вы не можете точно вычислить?

0 голосов
/ 03 марта 2010

Нет, если вы не в порядке, если ваши серийные номера не представлены в формате с плавающей запятой.

0 голосов
/ 03 марта 2010

Да. Я определенно использовал бы строки. Вполне возможно, что ваш серийный номер не может быть представлен как число с плавающей точкой, поэтому он будет не совсем правильным.

Для вещей, которые должны быть точными, то есть серийные номера, деньги и т. Д., Предлагается, чтобы вы никогда не использовали поплавки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...