конечные нули не входят в базу данных - PullRequest
2 голосов
/ 11 августа 2011

Итак, вот моя проблема. Мы пытаемся поместить цены в нашу базу данных, но по какой-то причине она преобразуется из 10,00 в 10 ИЛИ из 10,50 в 10,5, она просто отбивает конечные нули ....

Я проверил оператор SQL, и он говорит, что цена = 10,00 .... так что я на самом деле запутался, почему / где он удаляет .00

Я проверяю все, где мы вводим число до последнего шага в INSERT или UPDATE, и он сохраняет конечные нули все до UPDATE или INSERT, а затем, когда вы проверяете таблицу ... нули сбрасываются

Ответы [ 3 ]

8 голосов
/ 11 августа 2011

вы используете тип decimal(N,2) или аналогичный для хранения данных? если нет, то это нормальное поведение. см http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

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

ps. Существует также отдельная проблема того, как управлять значением на любом используемом вами языке. надеюсь, он использует специальный тип, который включает соответствующее форматирование. если нет, тогда вы можете захотеть беспокоиться о том, как вы обрабатываете значение в своем коде (одна возможность - умножить на 100 и использовать целое число центов, но тогда вам нужно позаботиться о том, чтобы математические вычисления округлялись правильно - это сложно, но это сложно по какой-то причине: если вы просто сложите все в двойные числа, это, вероятно, будет просто, но у вас будет странная ошибка для определенных значений ...)

0 голосов
/ 11 августа 2011

Неважно, как это выглядит в базе данных.Важно то, как вы представляете данные в своем приложении.10,00 - это то же значение, что и 10, поэтому в таблице данных оно будет сохранено как 10.

. Перед выводом необходимо отформатировать число.

0 голосов
/ 11 августа 2011

10 - это то же самое, что 10.00 - это то же самое, что и 10.0

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

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