:: Visual Foxpro, Foxpro for DOS
Re: ADIR, глюк с маской "?"
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
of63
Думаю уже, типа, сделать оператор (подпрограмму) "денежное суммирование", или "денежное умножение",

Делать специально "денежное" - не крута. Если уж и писать свои подпрограммы, то назвать "любое суммирование" и "любое умножение", где "денежное" будет лишь частным случаем. [sm128]
Ratings: 0 negative/0 positive
Re: ADIR, глюк с маской "?"
of63
Автор

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
НЕТ! как раз именно "денежное" (с округлением на 2 десятичных знака на каждом этапе). Произвольные алгебраические операции в фоксе делает сама математика фокса с Double, "сопроцессор" там какой-то..., но математика с шумовой составляющей Double/фокса уже конкретно имеет значение... за которую спрашивают ответ )
Ratings: 0 negative/0 positive
Re: ADIR, глюк с маской "?"
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
of63
их преобразования NTOM не нужны ... Думаю уже, типа, сделать оператор (подпрограмму) "денежное суммирование"
Где логика? Есть специальный тип данных и специальные правила арифметики при работе с ним (по сути это правила целочисленной арифметики) - но нет, готовый тип "не нужен", зато свой велосипед с квадратными колёсами - нужен
Ладно бы шла речь про числа произвольного размера и точности - но тривиальные денежные вычисления... Они даже с double не вызывают больших проблем, если правильно (вовремя) применять функцию округления...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: ADIR, глюк с маской "?"
of63
Автор

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Денежные вычисления простЫ - они все ROUND(2), а я пьян, и сопроцссор (математика Double) здесь и играет, мы просто ее еще не поняли, х.й бы с ней... но мы на ней получили Дос, фокс, винду... Уважаю, конечно, но... чето они нас перестали русифицировать... Наверное тоже надо что то пульнуть в ответ...

> Ладно бы шла речь про числа произвольного размера и точности - но тривиальные денежные вычисления
Они не тривиальные. Вот пример:
На счете клиента лежит сумма 0.01 руб (1 копейка) под 10% годовых
Вопрос: какая сумма на счете клиента по истечении 1 года ? А через 100 лет?



Исправлено 1 раз(а). Последнее : of63, 30.05.18 09:56
Ratings: 0 negative/0 positive
Re: ADIR, глюк с маской "?"
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Проценты, расценки, переходящие остатки, "суммы по строкам от процентов" - это НЕ сами денежные вычисления, это совсем другая арифметика, точнее бизнес-логика. И там каждый конкретный случай должен описываться чётко и недвусмысленно - и сделать что-то "универсальное" для этого не представляется возможным. Для "денежных" же вычислений всё предельно просто - они целочисленные (просто со сдвигом на 2 знака, если визуализировать их в "рублях").


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: ADIR, глюк с маской "?"
of63
Автор

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Это да, рубли с рублями складываются хорошо... НО! Берешь от них какие-то нелинейные функции (типа вопроса "число копеек 0 или не 0"), и получается не очень хорошо...
Ratings: 0 negative/0 positive
Re: ADIR, глюк с маской "?"
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
"Число копеек" всегда будет целым.
Расценки/проценты и т.п. - это НЕ копейки. Их (результаты расчётов) ещё надо к копейкам "привести" - и при этом будут применены те или иные "бизнес-правила". И они запросто могут оказаться не просто "отличными от ROUND", но и вообще противоречащими житейской логике и банальному здравому смыслу. Но это правила - и их придётся кодировать именно так как говорит постановщик задачи/аналитик/закон/указ/разъяснение_министерства - да миллион всяких "изобретателей" имеется, плодящих сию "нечеловеческую" логику


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: ADIR, глюк с маской "?"
of63
Автор

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Я применил математическую логику:
копеек = 100 * (сумма % 1) && расчитываю получить "целое" число...
и она несрабатывает. "Сумма" у меня берется из таблицы, из поля N(14,2). Что тут фоксу не ясно (при его заявлении о ИИ в расчетах в Double) ?
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 34 (Гостей: 34)

© 2000-2024 Fox Club 
Яндекс.Метрика