forum.bitel.ru http://forum.bitel.ru/ |
|
Как так насчиталось? http://forum.bitel.ru/viewtopic.php?f=22&t=5653 |
Страница 1 из 1 |
Автор: | niceone [ 29 июн 2011, 14:08 ] |
Заголовок сообщения: | Re: Как так насчиталось? |
Феанор писал(а): Подскажите как биллинг так насчитал? Разница в 5 копеек с тем что должно быть при расчете руками 994000×29÷30×1,18=1133822,67 ps быстрая проверка приводит к подозрению что период снятия АП (29/30) как то неправильно округлился, в соответствии с тем что отображает биллинг это 0,96666663 хотя на самом деле 0,96666666... как так? pps а сейчас заметил что в супердоговоре наработка этого договора - 63 копейки. WTF? предвосхищая будущие вопросы: 1. Клиент: вер. 5.1 сборка 511 от 28.04.2011 19:00:59 os:Linux; java:Sun Microsystems Inc., v.1.6.0_22 Сервер: вер. 5.1 сборка 641 от 16.05.2011 21:23:46 os:SunOS; java:Sun Microsystems Inc., v.1.6.0_24 2.в contract_account 1133822.62500 Неплохо живете |
Автор: | Феанор [ 29 июн 2011, 14:19 ] |
Заголовок сообщения: | Re: Как так насчиталось? |
niceone писал(а): Неплохо живете это тестовый биллинг с тестовыми тарифами =) |
Автор: | skyb [ 29 июн 2011, 14:37 ] |
Заголовок сообщения: | Re: Как так насчиталось? |
Феанор писал(а): Подскажите как биллинг так насчитал? Разница в 5 копеек с тем что должно быть при расчете руками 994000×29÷30×1,18=1133822,67 Там на сколько я помню погрешность есть....но если чесно не совсем понял проблемы |
Автор: | Феанор [ 29 июн 2011, 14:50 ] |
Заголовок сообщения: | Re: Как так насчиталось? |
skyb писал(а): Феанор писал(а): Подскажите как биллинг так насчитал? Разница в 5 копеек с тем что должно быть при расчете руками 994000×29÷30×1,18=1133822,67 Там на сколько я помню погрешность есть....но если чесно не совсем понял проблемы Проблема в том что я не могу понять откуда эта погрешность взялась, вроде все вычисления в bigdecimal везде, не должно быть такой погрешности. И в том, что захочет абонент проверить свою наработку посчитав на калькуляторе, получит такое и устроит скандал. Биллинг на то ж и биллинг чтобы считать правильно. а тут на целых 5 копеек не правильно. |
Автор: | Феанор [ 30 июн 2011, 14:34 ] |
Заголовок сообщения: | Re: Как так насчиталось? |
нет, я конечно понимаю, что если услуга за весь месяц вычисляется, то все хорошо, но расхождение пусть и в несколько копеек в неполные периоды - это крайне нехорошо. |
Автор: | Феанор [ 04 июл 2011, 14:59 ] |
Заголовок сообщения: | Re: Как так насчиталось? |
up |
Автор: | Феанор [ 06 июл 2011, 11:02 ] |
Заголовок сообщения: | Re: Как так насчиталось? |
up! как внедряться если биллинг свою основную задачу - считать правильно не делает правильно? |
Автор: | stark [ 06 июл 2011, 14:29 ] |
Заголовок сообщения: | Re: Как так насчиталось? |
покажите результат запроса Код: show create table contract_account
|
Автор: | stark [ 06 июл 2011, 14:32 ] |
Заголовок сообщения: | Re: Как так насчиталось? |
И еще мы выложили обновление по этому поводу, но оно вам, возможно, не поможет, если таблица contract_account неверная - есть подозрение на это. |
Автор: | stark [ 06 июл 2011, 14:34 ] |
Заголовок сообщения: | Re: Как так насчиталось? |
И еще включите режим debug в log4j и тогда в логах при начислении будет что-то типа вот этого Цитата: Add cost cache cid: 354037; sid: 79; cost: 227016.77419354838709677419354838706 Покажите какой там cost . Скорее всего правильный . |
Автор: | Феанор [ 06 июл 2011, 15:44 ] |
Заголовок сообщения: | Re: Как так насчиталось? |
stark писал(а): И еще включите режим debug в log4j и тогда в логах при начислении будет что-то типа вот этого Цитата: Add cost cache cid: 354037; sid: 79; cost: 227016.77419354838709677419354838706 Покажите какой там cost . Скорее всего правильный . Спасибо за наводку куда копать, я что то про дебаг и не подумал, надо было посмотреть шедулер - как он считает, да. Обновился вчера под конец рабочего дня. Сейчас сделал откат и проверил. И в новой и в старой версии счиалось правильно. 07-06/17:27:43 DEBUG [pool-1-thread-1] Calculator - Add cost cache cid: 9734; sid: 1; cost: 1133822.66666666666666666666666666657 07-06/17:27:43 DEBUG [pool-1-thread-1] Calculator - Add detail amount cache cid: 9734; sid: 1; mid: 5; eid: 0; cost: 1133822.6666666667 А вот похоже проблема была с табличкой все-таки. Сейчас: Код: contract_account | CREATE TABLE `contract_account` ( `yy` smallint(5) unsigned NOT NULL DEFAULT '0', `mm` tinyint(3) unsigned NOT NULL DEFAULT '0', `cid` int(10) unsigned NOT NULL DEFAULT '0', `sid` int(10) unsigned NOT NULL DEFAULT '0', `summa` decimal(15,5) DEFAULT NULL, PRIMARY KEY (`yy`,`mm`,`cid`,`sid`), KEY `cid` (`cid`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 | А было (откатился и проверил): Код: | contract_account | CREATE TABLE `contract_account` ( `yy` smallint(5) unsigned NOT NULL DEFAULT '0', `mm` tinyint(3) unsigned NOT NULL DEFAULT '0', `cid` int(10) unsigned NOT NULL DEFAULT '0', `sid` int(10) unsigned NOT NULL DEFAULT '0', `summa` float(15,5) DEFAULT NULL, PRIMARY KEY (`yy`,`mm`,`cid`,`sid`), KEY `cid` (`cid`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 | Поле сумма было флоат, а после обновления - децимал. Ошибку убрало. |
Автор: | stark [ 06 июл 2011, 16:37 ] |
Заголовок сообщения: | Re: Как так насчиталось? |
Феанор писал(а): Поле сумма было флоат, а после обновления - децимал. Ошибку убрало. Ясно . Это наша ошибка . Вы скорее всего скачали с сайта сервер , поставили и не обновляли сразу . У нас там в dump-е неправильная таблица была , а потом при первом обновлении вызывалось ALTER TABLE contract_account MODIFY summa DECIMAL(15,5); Исправили, теперь dump актуальный. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |