Я получаю сообщение FIX для Распределения сделок, где Цена указана в центах (ZAR / 100), но комиссия указана в Rands .Эти значения представлены константами.Когда я выполняю этот расчет, commPerc1
показывает значение 0,099999999999999978, а commPerc2
показывает 0,1.Эти значения отличаются в x10, но при проверке обратного вычисления до Rands оба значения commRands1
и commRands2
показывают очень похожие значения 336,4831554 и 336,48315540000004 соответственно.
private const double Price = 5708.91;
private const double Qty = 5894;
private const double AbsComm = 336.4831554;
static void Main()
{
double commCents = AbsComm * 100;
double commPerc1 = commCents / (Qty * Price) * 100;
double commRands1 = (Qty * Price) * (commPerc1 / 100) / 100;
double commPerc2 = (AbsComm / (Qty * (Price / 100))) * 100;
double commRands2 = (Qty * Price) * (commPerc2 / 100) / 100;
}
ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: Я имею в виду устаревший код, в котором преобразование в десятичное будет включать несколько изменений и контроль качества, поэтому сейчас я должен принять double
.