Каким будет лучший тип данных для хранения числа с плавающей запятой в mySQL?
Можно ли как-то сохранить его как INT?
Я думаю, что VARCHAR - мой лучший вариант, но если вы, ребята, знаете что-нибудь лучше, я был бы признателен за вход.
Thanx заранее!
В зависимости от того, какой тип числа с плавающей запятой вы храните, все сведения о числовых типах MySQL можно найти здесь:
http://dev.mysql.com/doc/refman/5.5/en/numeric-types.html
DECIMAL: Для валюты вы должны использовать Decimal, потому что ее точность и вы не получите странное десятичное округление в арифметике.
INT: Да, вы можете хранить float как int для повышения производительности. Например, валюта может храниться как $19,56 или 1956, если вы всегда /100 при отображении, бухгалтерское программное обеспечение делает это часто. Кроме того, вы можете хранить широту/долготу как целые числа, 322274063, -1109654800 = 32.2274063, -110.9654800, если вы делите на 10 000 000, если вне базы данных.
FLOAT/DOUBLE: И тогда, конечно, есть длинный и двойной. Используйте их, когда производительность не является приоритетом или количество десятичных знаков меняется.
SO ПРАВИЛО: Если производительность является проблемой, и вы знаете, что десятичные разряды всегда фиксированной длины, вы можете легко хранить INT для хранения FLOAT.
Почему вы хотите сохранить с плавающей точкой как int? MySQL имеет десятичные и плавающие типы, как и ваш язык программирования.
Я предполагаю, что у вас есть веская причина. Чтобы сохранить float как int, вы можете попробовать несколько вещей:
Если вам нужно закодировать число с плавающей запятой в плоском формате, я бы рекомендовал взглянуть на http://en.wikipedia.org/wiki/IEEE_754-2008