MySQL: мне нужно ввести десятичную в столбце int - PullRequest
0 голосов
/ 09 февраля 2012

У меня есть таблица с текущей структурой следующим образом:

enter image description here

В настоящее время это заполняется следующим образом:

enter image description here

Данные, хранящиеся для значения продукта, являются десятичным значением. и последние цифры обрезаются, как только они вставляются в базу данных.

Я попытался изменить структуру таблицы следующим образом:

enter image description here

Однако это приводит только к следующему:

enter image description here

Как вы можете видеть, все значения имеют .00, если их нет, но я хочу хранить все эти значения без десятичных знаков. За исключением стоимости продукта.

Как я могу это сделать?

1 Ответ

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

Проблема в том, что вы преобразовываете десятичное число (число с плавающей запятой / двойное число) в целое число, поэтому значение просто усекается (десятичные значения обрезаются).

Если вы действительно не хотите использовать значения с плавающей запятой (десятичные значения) в базе данных, вы можете использовать этот метод обхода:

Умножьте число на 100, прежде чем вставлять его, а затем обязательно делите его на 100 при использовании данных. Это позволит вам сохранить 2 десятичных знака при использовании целочисленной памяти.

Таким образом, 2,4 будет храниться как 240, 53 будет 5300, 20,74 станет 2074 и т. Д ...

Хочу отметить, что это не идеальное решение, а скорее взлом.

Я настоятельно рекомендую то, что другие пользователи предложили в комментариях: сохранять десятичное значение (как у вас есть) и форматировать его при представлении.

--- Дополнительно ---

Ваша настоящая проблема, похоже, связана с настройкой базы данных.

Каждое из этих значений должно иметь свое собственное поле, поскольку они будут повторяться для каждого продукта.

...