Страница 1 из 1

вопрос по округлению

Добавлено: 21 апр 2006, 08:22
san
В результате расчетов получилось число 1.304999999999993
round(1.304999999999993,2) = 1.30
бухгалтерам не нравится 1.30, они хотят 1.31
подскажите пожалуйста, как быть в данной ситуации?

Добавлено: 21 апр 2006, 09:15
Goblin
Послать их в ... школу , математику учить ...
Причем жёсткой форме, ибо не тетке-бухгалтеру менять правила математики. А то так они сядут на шею со своими идиотскими (иначе подобное требование не назвать) требованиями. Сегодня 1.304999999999993 округленное до копеек - это 1.31, завтра им 2+2 делай равное 5, послезавтра еще чего-нибудь.

Подобные поползновения неграмотных граждан должны резко и жестко быть пресекаемы, с чётким указанием этим гражданам, где их место в плане исправления законов логики, математики и прочих областей , в которых они ни капли не соображают, но пытаются порулить этим.

P.S. Можно предложить данным людям поработать в другой системе (MS Dynamix Ax, бывшая MBS Axapta) - там операции с подобными хвостами могут к таким чудесам привести, которые как раз и хотят от вас :D

Добавлено: 21 апр 2006, 13:15
Sheinina
Уважаемый Goblin, поделитесь, за что Вы так ненавидите Axapt'у?
Я не за нее ратую, просто интересно...

Добавлено: 21 апр 2006, 14:06
Goblin
Уважаемая Sheinina, я маленько по-offtop'лю и отвечу на Ваш вопрос :-)

Если говорить аллегориями, в частности о строительстве , эта "система" (в кавычках потому как функционал по сравнению с Гал-кой убог и урезан, плюс территориально ее переделывают все кому не лень, аля 1С с кучей малосовместимых конфигураций) есть пример того, как их хороших кирпичей на приличном фундаменте (т.е среда разработки и язык + СУБД на которой она вертится и степень использования этой СУБД) построили лачугу и продают ее по цене 5-звездного отеля со всеми удобствами и с неимоверной помпезностью. При этом имеет место быть наличие давно известных, но не исправляемых годами, багов и атавизмов, которые преподносятся как фичи. Присовокупив к этому насильственное насаждение ее мне в обязанности (нам и на Галактике было неплохо) - получаем ответ на Ваш вопрос.

Почему я припомнил ее в данной теме ? А как раз из-за известного бага даже не с округлением, а с элементарной математикой . Попробуйте дать программистам написать простейший код и протрассировать его, контролируя получаемые величины в Галактике.
Все будет в пределах погрешности в N-дцатом знаке после запятой.

Код: Выделить всё

var a,b,c,d,e,f:double;
a:=1;
b:=3;
c:=a/b;//Дикий хвост из 3 после запятой
d:=c*3;//Дикий хвост из 9 после запятой
e:=1+d+d;
f:=d+d+1;
Как Вы думаете, чему равны e и f в упомянутой системе ? Если как и в Гал-ке , 2.99999999.... или 3 - ошибаетесь. e=3, f=2 безо всяких хвостов после запятой.

Так что таким людям с такими просьбами по округлению - прямая дорога на эту систему, они найдут друг друга :D

Добавлено: 21 апр 2006, 14:16
Sheinina
Спасибо. Теперь мне понятна фраза одного моего знакомого руководителя внедрения Axaptы: "Чем больше я работаю с Axapt'ой, тем больше уважаю Галактику". А с округлением - это круто... :-D И мы еще плачемся на галактические баги :-D