Скачать MetaTrader 5

Округление чисел в МТ4 через NormalizeDouble

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Roman Starinskij
1915
Roman Starinskij  

Здравствуйте. Подскажите, в чем дело.

Почему функция NormalizeDouble(0.055,2) округляет число "0.055" до "0.06"?

Это же не функция огругления дробей.

Slava
Модератор
6971
Slava  

https://docs.mql4.com/ru/convert/normalizedouble

Округление числа с плавающей точкой до указанной точности.

NormalizeDouble - Документация на MQL4
  • docs.mql4.com
NormalizeDouble - Документация на MQL4
Maxim Khrolenko
7768
Maxim Khrolenko  

В продолжение темы. Есть скрипт

#property strict

void OnStart()
  {
   double v1 = NormalizeDouble(0.055,2);
   double v2 = NormalizeDouble(0.0549,2);

   Print("v1 = ",DoubleToString(v1),", v2 = ",DoubleToString(v2));
  }

результат: v1 = 0.06000000, v2 = 0.05000000, а ведь в обоих случаях должно быть 0.06000000.
 

Vladimir Karputov
Модератор
65021
Vladimir Karputov  
Maxim Khrolenko:

В продолжение темы. Есть скрипт

результат: v1 = 0.06000000, v2 = 0.05000000, а ведь в обоих случаях должно быть 0.06000000.
 

Округление — Википедия

Dmitry Fedoseev
46487
Dmitry Fedoseev  
Roman Starinskij:

Здравствуйте. Подскажите, в чем дело.

Почему функция NormalizeDouble(0.055,2) округляет число "0.055" до "0.06"?

Это же не функция огругления дробей.

А какой, по вашему, должен быть результат?
Dmitry Fedoseev
46487
Dmitry Fedoseev  
Maxim Khrolenko:

В продолжение темы. Есть скрипт

результат: v1 = 0.06000000, v2 = 0.05000000, а ведь в обоих случаях должно быть 0.06000000.
 

С какого перепуга?
Renat Akhtyamov
6654
Renat Akhtyamov  
Maxim Khrolenko:

В продолжение темы. Есть скрипт

результат: v1 = 0.06000000, v2 = 0.05000000, а ведь в обоих случаях должно быть 0.06000000.
 

ну вощьпеееее....

должно быть v1=v2=0.06

Я даже и не проверял никогда... Неужели так косячит?

У Вас МТ5 или МТ4?

Dmitry Fedoseev
46487
Dmitry Fedoseev  
new-rena:

ну вощьпеееее....

должно быть v1=v2=0.06

Я даже и не проверял никогда... Неужели так косячит?

С какого перепуга?
Renat Akhtyamov
6654
Renat Akhtyamov  
Dmitry Fedoseev:
С какого перепуга?

Я в школе на двойки учился, но как правильно округлять запомнил ТАМ...

Если самое правое число больше или 5, тогда следующее налево +1. И т.д. сдвигаемся справа налево

Dmitry Fedoseev
46487
Dmitry Fedoseev  
new-rena:
Я в школе на двойки учился, но это запомнил...

Интересненько, что за школа такая... Изложите ка ход своих мыслей. А то что-то не имею вообще никаких фантазий, как так может клинить. 

Vasyl Nosal
19165
Vasyl Nosal  
Maxim Khrolenko:

В продолжение темы. Есть скрипт

результат: v1 = 0.06000000, v2 = 0.05000000, а ведь в обоих случаях должно быть 0.06000000.
 

А ты нормазни 3 символа после запятой
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий