|
|
|
|
|
для: sim5
(15.08.2008 в 08:55)
| | >я то тут причем? :) Я вот вчера серьезно задумался, получал ли я сдачу в магазинах в виде >5.53 руб., например, не вспомнил такого случая. Если копейки, то 10, 20, 30...
Возможно сдачу получить и 1 и 5. :)
Особенно в аптеках(точность как в аптеке).
Просто, если имеет место банковские операции, то значения вычисляются аж до 4 символа после запятой. | |
|
|
|
|
|
|
|
для: sim5
(15.08.2008 в 08:55)
| | у нас все цены в долларах, и соответственно центах :) | |
|
|
|
|
|
|
|
для: ronin80
(15.08.2008 в 07:54)
| | А я то тут причем? :) Я вот вчера серьезно задумался, получал ли я сдачу в магазинах в виде 5.53 руб., например, не вспомнил такого случая. Если копейки, то 10, 20, 30... И цен с единицами копеек тем более не видел. А кто же их тогда считает? :) | |
|
|
|
|
|
|
|
для: sim5
(14.08.2008 в 19:29)
| | Похоже вы оказались правы! Сменил тип полей на decimal и для всех переменных участвующих в расчётах, округление прошло нормально.
Как говорится век живи век учись :) Всем огромное спасибо за помощь! | |
|
|
|
|
|
|
|
для: Trianon
(14.08.2008 в 20:15)
| | Ну с целыми хлопот меньше будет, правда ни о какой колбасе 300 гр. за 30.57 руб. и речи, быть не может, 31 руб. и точка :)) | |
|
|
|
|
|
|
|
для: sim5
(14.08.2008 в 20:12)
| | А рубли нужны?
Можно вообще все деньги в копейках хранить целыми числами.
Проблема от этого не исчезнет. | |
|
|
|
|
|
|
|
для: Trianon
(14.08.2008 в 19:56)
| | Округлять все до рублей - ну кому нужны сейчас копейки? :) | |
|
|
|
|
|
|
|
для: ronin80
(14.08.2008 в 19:19)
| | по деньгам оба ответа имеют равные права. Они одинаково отличаются от истинного. | |
|
|
|
|
|
|
|
для: ronin80
(14.08.2008 в 19:17)
| | Ну понял я о чем Trianon. Так не только в MySQL, но и РНР, и JS, например, могут давать разный результат при вычислениях, так что и с другой стороны тоже можно ожидать ошибок. | |
|
|
|
|
|
|
|
для: Trianon
(14.08.2008 в 19:14)
| | CREATE TABLE `tst` (
`id` int(11) NOT NULL auto_increment,
`number` float default NULL,
`name` varchar(60) default NULL,
`date` date default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=20 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=20 ;
INSERT INTO `tst` VALUES (6, 0.19, 'imag', '2008-08-15');
Выполняю:
mysql_query("UPDATE tst SET number=ROUND(number*487.5,2)");
После выполнения:
INSERT INTO `tst` VALUES (6, 92.62, 'imag', '2008-08-15');
Или вы имеете ввиду именно точность вычислений? | |
|
|
|
|