Здравствуйте!
Подскажите, пожалуйста, функцию для округления в c++, такую же точную, как NormalizeDouble() в MQL.
Результат SimpleRoundTo в ряде случаев не совпадает с NormalizeDouble().
Спасибо!
На С++ нормальный программер уж точно все свое пишет! А некоторые из них даже компиляторы.
Нужно, чтобы это округление не стало узким местом программы.
Быстрое округление чисел с плавающей точкой, насколько я знаю, не такая уж тривиальная задача. А в библиотеках к C++ математические функции реализованы на ассемблере.
Нужно, чтобы это округление не стало узким местом программы.
Быстрое округление чисел с плавающей точкой, насколько я знаю, не такая уж тривиальная задача. А в библиотеках к C++ математические функции реализованы на ассемблере.
Быстрое округление до целого (int)(double+0.5)
SimpleRoundTo(0.33265,-4) результат: 0.3326
NormalizeDouble(0.33265,4) результат: 0.3327
SimpleRoundTo(0.33265,-4) результат: 0.3326
NormalizeDouble(0.33265,4) результат: 0.3327
см. SetRoundMode
В большинстве случаев округляет верно, например:
SimpleRoundTo(0.33245,-4) результат:0.3325
SimpleRoundTo(0.33265,-4) результат: 0.3326
NormalizeDouble(0.33265,4) результат: 0.3327
Такой метод округления - если последняя пятерка, четные вниз, нечетные вверх
Простите, не понял Вас. Поясните, пожалуйста.
Простите, не понял Вас. Поясните, пожалуйста.
:-) Найдите какой-нибудь серьезный справочник по математике, почитайте про методы округления.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте!
Подскажите, пожалуйста, функцию для округления в c++, такую же точную, как NormalizeDouble() в MQL.
Результат SimpleRoundTo в ряде случаев не совпадает с NormalizeDouble().
Спасибо!