Такая работа NormalizeDouble() - это нормально? - страница 2

 
Mathemat писал (а) >>

И еще до запятой не меньше семи. Короче, не менее 15 (!!!) значимых разрядов в мантиссе, если школу вспомнить. Навскидку на ум приходит только один вариант: нейросети. VBAG, ну правда интересно. Вот мне, например, при расчете машек вполне достаточно 5, от силы 6 значимых цифр.

P.S. Вот еще вариант: расчеты поправок при решении вековых уравнений или в ОТО. Но это уже явно не трейдинг...

Н-е-е, до сеток еще не добрался, очень охота некоторые мысли проверить, но это вещь опасная - как засядешь чего-нить варганить так на несколько месяцев в матрицу и уйдешь.

Да и сетки мне видится, что надо на VC писать, чтобы постоянно не думать об ограничениях и о скорости.

 
Mathemat писал (а) >>

P.P.S. А тащить двойную точность в одном дабле - вроде не очень сложная проблема. Всего-то и нужно написать библиотеку для такой двойной точности. Кстати, вот попробуй такую функцию из stdlib.mq4 (там вроде до 17):


Спасибо, Алексей! Дык, проблемы то нет - накропал пару функций за пятнадцать минут, а полдня изучал NormalizeDouble(). Ответило эхо - сами знаете что!




Может подскажешь, как проще избавиться от мусора в младших разрядах больших чисел, такого как 123456789.90000053 ?

 
VBAG писал (а) >>

Может подскажешь, как проще избавиться от мусора в младших разрядах больших чисел, такого как 123456789.90000053 ?

double DoubleNormalize(double $value, int $digits){
return (StrToDouble(DoubleToStr($value, $digits)));
}

 
VBAG писал (а) >>

Только дилетанты и люди не знакомые с "железом" могут поверить в то, что плавающая арифметика это вещь приблизительная! Таким образом ленивые программисты разводят заказчиков-лохов.

"Только дилентанты и люди не знакомые с" ... Google могут себе позволить бездоказательно вешать ярлыки только потому, что им кажется что они правы :)

Вот одна из первых ссылок в длинном списке поиска строки "плавающая арифметика точность": http://www.ibm.com/developerworks/ru/library/j-jtp0114/index.html

А вот прямая цитата:

Ошибки округления

Арифметика чисел с плавающей точкой не отличается особой точностью.
Тогда как некоторые числа, например, 0.5, можно точно представить как двоично-десятичные (основание 2) (поскольку 0.5 равно 2-1), но другие числа, например, 0.1 - невозможно. В итоге операции над числами с плавающей точкой могут привести к ошибкам округления, выдавая результат, близкий - но не равный - тому результату, который можно было ожидать. Например, простое вычисление, приведенное ниже, равняется 2.600000000000001, а не 2.6:

double s=0;
for (int i=0; i<26; i++)
s += 0.1;
System.out.println(s);

Аналогично, умножение .1*26 выдает результат, отличный от прибавления .1 к самому себе 26 раз. Ошибки округления могут оказаться даже более серьезными при преобразовании типа от вещественного к целому, поскольку при преобразовании к целому типу нецелая часть отбрасывается, даже для вычислений, которые "выглядят похожими", они должны иметь целые значения. Например, следующие выражения:

double d = 29.0 * 0.01;
System.out.println(d);
System.out.println((int) (d * 100));

на выходе дадут:

0.29
28

что не совсем соответствует первоначально ожидаемому результату.

Надеюсь вы не скажете про сотрудников IBM что они дилетанты ;)

Не будьте всегда столь категоричны - это позволит вам быстрее и эффективнее учиться тому, чего вы еще не знаете ;)

 
ForexTools писал (а) >> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

NOT Public relations!, NOT Public relations!, NOT Public relations!, NOT Public relations!, NOT Public relations!, NOT Public relations!, NOT Public relations!, NOT Public relations!

 
Andy_Kon писал (а) >>

double DoubleNormalize(double $value, int $digits){
return (StrToDouble(DoubleToStr($value, $digits)));
}

Спасибо! Буду разбираться.



Хотелось бы узнать позицию разработчиков по этой теме.

 
VBAG писал (а) >>

NOT Public relations!, NOT Public relations!, NOT Public relations!, NOT Public relations!, NOT Public relations!, NOT Public relations!, NOT Public relations!, NOT Public relations!

А это чего было????

 
VBAG писал (а) >>


Хотелось бы узнать позицию разработчиков по этой теме.



К сожалению, комментариев разработчиков по этому вопросу нет.

Причина обращения: