Проблемы округления
Проблемы округления
Иногда проскакивают депозиты вроде 183.368494 или 19.478597. При этом замечу, что цен за мегабайт ниже чем 0.005 у.е. (т.е. "полкопейки") нет. Еще есть цена 0.01 и 0.02. Вроде со всеми арифметическими операциями на вещественных числах 0.02, 0.01 и 0.005 довольно стабильно работают и Perl и MySQL 5.1 и возвращают вполне ожидаемый результат.
who | grep -i blonde | date; cd $HOME; unzip; touch; strip; finger; mount; fsck; more; yes; uptime; umount; sleep 69
И все же нет... У большинства депозиты нормально округлены (98.230000, 23.390000, 133.430000, 55.710000 и т.д.) и лишь у отдельных глючно (37.562986, 118.746581, 0.006232 и еще 2-3). Как это можно объяснить?NiTr0 писал(а):Ничего удивительного - траф считается в байтах. Сумма - соответственно тоже целой не бывает практически никогда.
who | grep -i blonde | date; cd $HOME; unzip; touch; strip; finger; mount; fsck; more; yes; uptime; umount; sleep 69
В поддержку ваших слов следующий код в traffic2sql не оставляет сомнений, что депозит всегда будет "нецелым":NiTr0 писал(а):У нас - практически у всех пользователей "нецелые" суммы за сессии.
В таком случае сразу назревает второй вопрос: как так могло получиться, что у меня большинство депозитов строго кратны ценам за мегабайт 0.02, 0.01 или 0.005?$sum_in += $in / $conf{MB_SIZE} * $price_in if ($price_in > 0);

who | grep -i blonde | date; cd $HOME; unzip; touch; strip; finger; mount; fsck; more; yes; uptime; umount; sleep 69