Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
@fxsaber NormalizeDouble округляет до десятичных знаков, что отличается от округления до значащих цифр. SF - это 1-15 или 17 включительно. 0 не существует.
Не понял.
NormalizeDouble(12.345, 2) -> 12.35
RoundToSignificantDigits(12.345, 2) -> 12
EqualDouble() используется для сравнения подозрительных равных сумм, например 1.123456 и 1.23456789.
также может использоваться для сравнения очень больших чисел, таких как 1234567891234.1234 и 1234567891234.1255.
не зная десятичных цифр в числах, которые вы сравниваете друг с другом.https://www.wikiwand.com/en/Significant_figures
https://chem.libretexts.org/Bookshelves/General_Chemistry/Book%3A_Chem1_(Нижний)/04%3A_Основы_химии/4.06%3A_значимые_фигуры_и_основы
https://www.calculatorsoup.com/calculators/math/significant-figures-rounding.php
Форум о трейдинге, автоматизированных торговых системах и тестировании торговых стратегий
Библиотеки: Math Utils
fxsaber, 2023.02.21 21:01
Вам нужно научиться делать правильные замеры производительности.
В 21 раз быстрее.
@fxsaber Я не проверил после вас, вчера!
Но, когда я вернулся сегодня, я обнаружил, что вы сделали бенчмарк неправильно. Вы просто проверили оператор modulo %, но с помощью внутренних оптимизаций компилятора получили нереальную разницу.
Я использовал этот простой бенчмарк для повторной проверки. Обе функции работают достаточно быстро. Так что никаких изменений!
@fxsaber Я не проверил после вас, вчера!
Но, вернувшись сегодня, я обнаружил, что вы неправильно провели бенчмарк. Вы просто проверили оператор modulo %, но благодаря внутренним оптимизациям компилятора получили нереальную разницу.
Я использовал этот простой бенчмарк для повторной проверки. Обе функции работают достаточно быстро. Так что никаких изменений!
Вы делаете неверные выводы.
// 200000000.0означает, что вызовы функций не были оптимизированы компилятором. Я не знаю, зачем вы манипулируете 3-м аргументом, оставьте его в качестве параметра по умолчанию и протестируйте заново.
Используйте простой цикл.
означает, что вызовы функций не были оптимизированы компилятором. Я не знаю, зачем вы манипулируете 3-м аргументом, оставьте его в качестве параметра по умолчанию и протестируйте заново.
Используйте простой цикл.
К сожалению, вы не понимаете, что измеряете.
Отключите оптимизацию компилятора и попробуйте.
Так зачем отключать? Я пишу функцию, а потом завишу от оптимизирующего компилятора.
Иначе я бы программировал на ассемблере, как в старые добрые времена :-)