Сообщество
Логин
Пароль
Забыли пароль?     Регистрация
От всей души
Мы старались, делали.
Можно поблагодарить разработчиков любой суммой.
Общение / Веб версия / Неясности с обменом валют

Неясности с обменом валют

NO NAME
8 февраля 2011 10:57
Итак, пример из жизни:
я меняю 500 рублей по курсу 267 грн за 1000 рублей, итого получаю 133.5 грн., система же, как мы видим, выдаёт нам курс не гривен к рублю, а наоборот. Я бы ещё понял если бы это обуславливалось тем что у меня рубль - основная валюта на период обмена, но нет.

Почему бы не высчитывать курс так: "купили" / "потратили". А то у вас, насколько я понимаю просто большее число делится на меньшее.
Пример:
Купили: 100 грн
Потратили: 500 Руб

Купили: 500 грн
Потратили: 100 Руб

в обоих случаях Курс равен 5
Где логика?
И ещё не очень понятно зачем округление в большую сторону в журнале операций? вводить в заблуждение?
Admin
 
8 февраля 2011 12:47
Здравствуйте!

Не однозначный вопрос. Действительно сейчас большее делится на меньшее. Это оправдано, т.к. большей частью меняют рубли на USD или на EUR, и в этом случае удобнее, если курс будет соответствовать тому, какой он в обменниках, независимо от того, покупаем ли мы доллары или продаём.

Но за информацию спасибо, возьмём на заметку.

Насчёт округления - вскоре будет настройка показывать копейки или округлять до целого.
NO NAME
8 февраля 2011 12:53
Интересно, это откуда же вы сделали вывод что большей частью меняют рубли на USD или на EUR? А что если обмен будет производиться наоборот? Вы не считаете, что в данном случае будет показываться неверный курс? потерь в ресурсах не будет, если вы измените одно деление, на другое, но результат будет верным. Так логичнее, вам не кажется?
NO NAME
8 февраля 2011 12:58
Купили: 100 грн
Потратили: 500 Руб
Курс: 5

В данном случае получается что 1 руб = 5 грн., следовательно при продаже 500 руб. мы должны получить 500*5 = 2500 грн., исходя из Вашей тактики мышления получается именно так, но результат заведомо неверен, потому как денег по факту мы получили в 25 раз меньше!
Admin
 
8 февраля 2011 13:02
Иван Пишет:
А что если обмен будет производиться наоборот?
Обратите внимание, на прошлый ответ: ".. независимо от того, покупаем ли мы доллары или продаём.."

Сейчас: купили 1000 руб за 30 USD - курс в районе 30 руб; купили 30 USD за 1000 руб - курс опять в районе 30 руб. Всё хорошо.

Если всегда делить купили/потратили то, во втором случае курс будет 0.03, это никому ни о чём не скажет, не привычно.
NO NAME
8 февраля 2011 13:48
Администратор Пишет:
во втором случае курс будет 0.03, это никому ни о чём не скажет, не привычно.
ну Вы меня поражаете честное слово. разумеется что как только у нас результат от деления float с целой частью равной нулю, его нужно домножить на 1000, и получатся те самые ваши 30 в данном случае.

Такой способ при работе с соотношением гривна <=> рубль будет давать верный результат:
500 рублей по курсу 267 грн за 1000 рублей, итого получаю 133.5 грн.

133.5/500*1000 = 267
Admin
 
8 февраля 2011 13:57
Иван Пишет:
его нужно домножить на 1000
Нет, это не даст общепринятый курс, выдаваемый ЦБ. Проверьте сами для курса евро, например.

Понятно, что для гривна <=> рубль, удобнее так, как говорите вы, но пока для большинства пользователей это будет неудобно.

Подумаем как и ваш случай предусмотреть.
NO NAME
8 февраля 2011 14:07
Администратор Пишет:
Проверьте сами для курса евро, например.
Да, немного погорячился с обобщением на все валюты. В таком случае можно выделить группы комбинаций валют (самых часто используемых), по общим признакам.

к примеру:
группа 1: EUR - руб, руб - EUR ...
группа 2: гривна - рубль, рубль - гривна, USD - руб, руб - USD ...

правила к
группа 1: большее / меньшее
группа 2: покупка / продажа * 1000
Ilyan
9 февраля 2011 09:03
Правило простое:

Если одна из валют - валюта по умолчанию, курс должен быть к ней. Т. е. если один человек живет в России (валюта по умолчанию - рубль), а другой - на Украине (валюта по умолчанию - гривна), то при одинаковом обмене рублей на гривны (или наоборот, неважно), курсы обмена для них должны быть РАЗНЫМИ (обратными).

В остальных случаях выбор порядка в паре сложнее, но и менее важен.

Кстати, если бы вы поддерживали сортировку валют, то в подавляющем большинстве случаев правильным порядком валют при определении курса был бы порядок валют в списке пользователя.
Ilyan
9 февраля 2011 09:14
Хотя есть исключения. Например, в паре евро-доллар курс считается в долларах даже в США:

http://www.federalreserve.gov/releases/h10/Current/default.htm
Ilyan
9 февраля 2011 09:42
Кстати, курс надо округлять не до 2 знака после запятой, а до 4 значимого, например:

29.25 (USD/руб)
3.677 (UAH/руб)
0.3564 (JPY/руб)
0.009713 (BYR/руб)

А в оформлении обмена валют использовать пустое место по словом "Курс", например:

Курс: 29.25
1 USD/руб
NO NAME
9 февраля 2011 23:12
Ilyan Пишет:
Если одна из валют - валюта по умолчанию, курс должен быть к ней.
ну вот тут пожалуй не соглашусь, на мой взгляд курс должен применяться к валюте, которую покупают.
ИМХО, если я еду в другую страну отдыхать, но валюта у меня по умолчанию рубли, а курс будет в обменниках применяться к валюте той страны, где я отдыхаю, то в дребеденьгах будет довольно затруднительно видеть курс в рублях, переводить его в уме и сравнивать с тем, что был в обменнике.

Уважаемые админы, когда вы планируете поправить описанные мною в этой теме баги?
Ilyan
9 февраля 2011 23:19
А зачем переводить, сравнивать? Курс в дребеденьгах - это не калькулятор, а дополнительная информация для уже совершенного обмена. И подсказка эта нужна в привычных величинах - для того, чтобы при просмотре истории обменов двух валют все курсы были к одной из них.

P. S. То, что вы описали - не является багами.
NO NAME
9 февраля 2011 23:28
Ilyan Пишет:
То, что вы описали - не является багами.
А чем же это является? Если я вижу в обменнике курс 267 грн за 1000 рублей, а дребеденьги мне показывают 3,75 рублей за 1 гривну. Как по мне, так это вообще ни разу не информативно и вводит в заблуждение. тем более, что ваше замечание по поводу точности до 4 знака в мантиссе уж точно следует принять во внимание.
Ilyan
9 февраля 2011 23:31
Какая разница, какой курс был в обменнике? Не случайно ведь в дребеденьгах при внесении обмена валют указывается НЕ КУРС, а конкретные суммы в обеих валютах. Курс - это только доп. информация и удобнее его видеть ВСЕГДА в одном формате (всегда к одной из валют в паре).

Представьте что вы продаете валюту не в другой стране, а в своей, никуда не уезжая. Вы ведь не захотите видеть непонятный обратный курс. Точно так же и заграницей - совершив обмен по непривычному обратному курсу, вам будет гораздо удобнее воспринимать информацию в привычном виде.
Ilyan
9 февраля 2011 23:33
Я не понял ваш пример: где вы живете, где обмениваете валюту и какая ваша валюта по умолчанию?
NO NAME
9 февраля 2011 23:43
валюта по умолчанию - рубль, но даже если я изменю её на гривну - результат будет всё равно 3,75 рублей за 1 гривну. То есть в итоге мы имеем, что курс даже не зависит от валюты по умолчанию.

Даже если бы я жил на Украине и хотел видеть тот самый курс 267 - это бы не произошло, что на мой взгляд не верно. Полностью с вами согласен, что это только дополнительная информация, но она должна отображаться как следует, в противном случае этим сервисом будут пользоваться сугубо росияне.
Ilyan
10 февраля 2011 08:03
1. Если ваша валюта по умолчанию - рубль, значит при операциях с гривной вам должен быть "привычнее" именно курс ~3.75 руб за грн, также, как и ~30 руб за USD или ~40 руб за EUR, так как именно он используется во всех обменниках в России.

2. Я как раз и предлагаю, чтобы при изменении валюты по умолчанию на гривну, курс менялся на 0.267.
NO NAME
10 февраля 2011 10:07
Ilyan Пишет:
Я как раз и предлагаю, чтобы при изменении валюты по умолчанию на гривну, курс менялся на 0.267
Ну вот и я за это же!

Только вот непонятно, что по этому поводу думают админы.
Admin
 
10 февраля 2011 11:10
Точность до 4-го знака - сделаем. Остальное пока под вопросом.
Ilyan
10 февраля 2011 12:08
А в чем сложность сделать курс к основной валюте (если она одна из валют обмена)?
Чтобы отвечать на сообщения - зарегистрируйтесь и войдите в личный кабинет.