logo
logo
Дело в настройках количества знаков после запятой [Дим(м) 19/05/2020 22:52]
Последний раз, когда обновлялся этот плагин, AbilityCash ожидала на входе суммы, умноженные на 10000. Т.е. плагин возвращает "1 FXUS" как 10000, а "3782 RUR" как 37820000:

// iValue1 - задаёт количество национальной валюты. Младшие 4 десятичных
// разряда указывают дробную часть значения, а целая часть начинается с
// пятого десятичного разряда. Например, если iValue1 равно "123456789",
// это будет соответствовать значению курса "12 345,6789".
__int64   iValue1;

 
Учитывая, что первых у вас получается в 100 раз больше, чем должно быть, а вторых - в 100 раз меньше, подозреваю, между плагином и программой возникло какое-то разногласие.
 
Вероятная его причина - изменения в настройках количества знаков после запятой у какой-то из валют. У вас нет, случайно, ничего с 6 знаками после запятой?
 
Подозреваю, что т.к. 6 не вмещается в заложенные изначально 4 знака, то при наличии хотя бы одной такой валюты программа переходит к представлению "как задано в настройках валюты" (вместо "всегда 4 десятичных знака").
И тогда 10000 превращаются в 100 FXUS (ведь у FXUS у вас по-умолчанию 2 лесятичных знака?). А 37820000 превращаются в 37.82 RUR (потому что в настройках рубля 6 десятичных знаков?).
 
Это, в общем-то, ошибка в программе. Внутренние изменения в представлении чисел не должны влиять на интерфейс с плагинами. Другими словами, AbilityCash должна сама пересчитывать "всегда 4 знака", возвращаемые плагином, в свой внутренний способ представления для конкретной валюты.