Как в mql превратить цену 1652.25 в 1650, 1625,2 в 1620 и т.д. округлить до десятков
NormalizeDouble не подходит
Первый вариант
int a = MathFloor(1652.25/10)*10.0;
Второй вариант.
int a = (int)(1625.2/10)*10;
не проверен, но не должен округлять в большую сторону...
число в формате деубле не всеглв правильно делится
у меня похожий вопрос: пчему при округлении до 5 цифры после запятой все равно нет нет и проскакивает число с большим количеством цифр...
double sint_value; double in_a; double in_b; // это все цены с 5 знаками..... sint_value = NormalizeDouble(in_a / in_b, 5);
у меня похожий вопрос: пчему при округлении до 5 цифры после запятой все равно нет нет и проскакивает число с большим количеством цифр...
А как Вы об этом узнаете? Наверное, распечатываете. Учтите, что при распечатке значения уже производится преобразование числа, а потому будет видно не совсем то, что там реально есть.
у меня похожий вопрос: пчему при округлении до 5 цифры после запятой все равно нет нет и проскакивает число с большим количеством цифр...
Проблема вывода, его невозможно посмотреть. Но можно убедится, что в числе нет ничего лишнего через if и == или !=.
Вроде задачю решил с помощью MathRound
int a = MathFloor(1652.25/10)*10.0;
вам сразу дали это решение вторым постом)))) только все одну и туже формулу записали по разному.
отличие только в том, как будет округляться число прежде чем отбросите последнюю цифру.
решал...
double d = 0.01; Print(string(d)); Print(DoubleToString(d));
Принтило по разному)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Как в mql превратить цену 1652.25 в 1650, 1625,2 в 1620 и т.д. округлить до десятков
NormalizeDouble не подходит