Как хранить 1/3 как десятичную в MySQL - PullRequest
3 голосов
/ 22 февраля 2012

Я пытаюсь выяснить, как хранить 1/3 или любую дробь, которая приводит к бесконечно повторяющемуся десятичному значению в MySQL. Я не могу просто использовать 3.333333, потому что он явно не равен 100. Я читал о типе данных float, но я не уверен, будет ли это работать. Любая помощь будет оценена.

Спасибо

Ответы [ 2 ]

10 голосов
/ 22 февраля 2012

Вы можете потенциально представить все рациональные числа (включая целые числа) как «числитель» и «знаменатель».Таким образом, в вашей таблице будут столбцы числителя и знаменателя, а в приложении будет логика для хранения чисел с использованием этой формы.

Вы все равно не сможете хранить иррациональные числа именно с помощью этой техники (т. Е. Если выесли вы хотите сохранить число Пи, вам все равно понадобится дробное приближение.)

Смотрите здесь, что такое рациональные числа, чтобы вы могли понять ограничения этого метода.

http://en.wikipedia.org/wiki/Rational_number

7 голосов
/ 22 февраля 2012

Храните числитель и знаменатель в отдельных столбцах. Это действительно так просто. Настоящая проблема возникает позже, когда вы хотите сложить все дроби. Некоторые языки имеют встроенные средства для этого, но я не думаю, что MySQL делает.

...