Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Какой тип лучше использовать для храниения цен в Mysql
 
 автор: yura_040   (12.05.2010 в 14:39)   письмо автору
 
 

Привет Всем.

Вопрос к тем, кто сталкивался уже с хранением цен в Mysql таблице.

Какой тип лучше тип использовать для хранения цены в таблице в форматах типа: 130.00 или 130.32 или 998888 и т.д.?

Необходимо потом цены удобно было складывать, умножать. отнимать, делить и т.д.

Некоторые советуют использовать float, DECIMAL некоторые INT ( и в INT ячейке хранить цену в копейках и затем конвертировать ее в рубли и копейки)

Кто может дать наиболее практичное решение для этого ?

PS лично я склоняюсь к DECIMAL (5,2)

  Ответить  
 
 автор: root   (12.05.2010 в 15:01)   письмо автору
 
   для: yura_040   (12.05.2010 в 14:39)
 

да, decimal(x,2)

  Ответить  
 
 автор: yura_040   (12.05.2010 в 15:23)   письмо автору
 
   для: root   (12.05.2010 в 15:01)
 

Спасибо за ответ )))

  Ответить  
 
 автор: Лена   (12.05.2010 в 15:54)   письмо автору
 
   для: yura_040   (12.05.2010 в 14:39)
 

FLOAT, я только что столкнулась с DOUBLE.

  Ответить  
 
 автор: root   (12.05.2010 в 16:36)   письмо автору
 
   для: Лена   (12.05.2010 в 15:54)
 

http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

The FLOAT and DOUBLE data types are used to represent approximate numeric data values
The DECIMAL and NUMERIC data types are used to store exact numeric data values.

Пример грубый, но тем не менее:
CREATE TABLE `tst` (
  `fl` float(5,2) NOT NULL,
  `dc` decimal(5,2) NOT NULL
);
INSERT INTO tst VALUES (3.33,3.33);
SELECT fl * 1.0000000 FROM tst; #3.3299999
SELECT dc * 1.0000000 FROM tst; #3.330000000

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования