Отправляет email-рассылки с помощью сервиса Sendsay

[TC] mysql. проблемы с числовым форматом

Здравствуйте, уважаемые!

Есть таблица, в которой поле price имеет тип float(4,2). Какое бы я значение
в него не заносил, оно оказывается равным 99.99
исключение составляет вставляемое значение 0, тогда в базе оказывается значение
0.00

Подскажите, в чем может быть дело или как исправить ситуацию.

p.s. Изменять формат поля и настройки сервера нежелательно.

Просмотреть телепрограмму на неделю:
http://samaraobs.ru/UserFiles/tv.html
Грызунов Александр. Самара.

Ответить   "eastreb" Sun, 27 Nov 2011 16:16:58 +0300 (#2271454)

 

Ответы:

Приветствую всех.

Это не так. В результатах запроса корректно должны отображаться все значения,
по модулю меньше 100.0.

Число, которое вы хотите поместить в базу, содержит больше десятичных разрядов,
чем вы указали в формате столбца. 99.99 -- это максимальное число, которое может
хранить ваш столбец.
По всей видимости, вы имели в виду float (6,2), т.е. 4 разряда до десятичной
точки и два разряда после нее.

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

Успехов. Анатолий.

Ответить   "i_chay" Mon, 28 Nov 2011 01:46:08 +0300 (#2272461)