создать новую тему раскрыть все
свернуть/развернуть ветвь Кросс-курсы... [Дмитрий 12/07/2004 10:26] # написать ответ
 
не расчитываются. Загружаю курсы из интернета, ставлю галку Расчитать кросс-курсы... Отношение рубль/доллар и рубль/евро показывает корректно, а вот при попытке посмотреть курс евро/доллар, например, или наоборот выдает только абсолютные значения курсов валют Not so
свернуть/развернуть ветвь Почему же, (+) [Dervish 14/07/2004 02:11] # написать ответ
 
... не расчитываются? Расчитываются. Давайте на примере, я попробую объяснить те цифры, которые вы видите.
 
Загружаем курсы на начало июля месяца, выбираем из списка валют USD и EUR. Программа записывает в базу данных три курса (их потом можно посмотреть):
 
1. 29.0471 RUR за 1 USD;
2. 35.0889 RUR за 1 EUR и
3. 35.0889 USD за 29.0471 EUR.
 
Вас смутило то, что в третьем курсе мы видим до боли знакомые числа? Но ведь они правильные! Попробуйте разделить оба числа на меньшее и вы получите, что
1 EUR стоит 1.2080 USD, что соответствует действительности.
 
Другой вопрос состоит в том, что я действительно не стал реализовывать это деление в самой программе. Почему? С одной стороны, при этом делении неизбежно будут ошибки округления. С другой стороны, непонятно, на какое из этих двух значений надо их делить. Скажете, на меньшее? Но это не всегда будет правильно, поскольку некоторые валюты номинируются не к единице (например, японские йены).
 
С другой стороны, попробуйте пересчитать остаток по какому-нибудь долларовому счёту в евро и вы увидите, что программа будет показывать правильные результаты.
свернуть/развернуть ветвь Конечно [Дмитрий 14/07/2004 15:34] # написать ответ
 
так оно и есть, просто есть некоторое неудобство в непривычном восприятии Well
 
А что на что делить - ту валюту, которая выбирается первой (верхнуюю в диалоге выбора валют) на вторую (нижнюю). По-моему, очевидное и понятное решение To wink
 
А делить можно с точностью до 4 знаков, как построены все финансовые котировки. В таком случае погрешность бдет просто незаметной Well
 
На странице валют программа показывает то, что записано в базе данных. Делить при загрузке, мне кажется, будет вообще неверно, поскольку ошибки округления могут быть очень большими.
свернуть/развернуть ветвь И все же [TAB 21/07/2004 02:58] # написать ответ
 
я поддерживаю Дмитрия: кросскурсы привычнее воспринимать приведенными к единице. И не вижу, как может повлиять ошибка округления: в операциях в любом случае используются свои курсы.
 
... будет проявляться в графиках и при пересчётов остатков по счетам. Только там используются курсы.
свернуть/развернуть ветвь Надо, Федя, надо... (с) [Дмитрий 21/07/2004 10:02] # написать ответ
 
Сергей, я не настолько глубоко знаком с логикой работы программы, как Вы, но мне кажется, что было бы правильным хранить абсолютные значения курсов валют в таблице как константы, а отношение выстраивать именно как отношение единицы одной валюты к единице другой - это более понятно, привычно и понятно. Кроме того, насколько я помню, в котировках ЦБ присутствует такое поле, как количество единиц валюты в том случае, когда ее курс очень мал, причем это количество представляет собой единицу с некоторым количеством нолей (1, 10 ,100, 1000 и т. д.). Наверное, с использованием этих параметров (они ведь все равно подгружаются) можно выстроить отношение любых валют между собой именно в формате 1:1 (10, 100, 1000 и т. д.).
 
величину коэффициента? 10, 100, 1000? Напомню, что речь идёт о кросс-курсах, которые должны расчитываться из загруженных курсов.
 
Пока считаю тему закрытой и не включаю в свои планы изменения алгоритмов расчётов курсов. Мне кажется, что пока получен удовлетворительный результат. Тем более, что нужно обождать, когда будет сделан график курсов валют.