Arredondamento de números em MT4 via NormalizeDouble

Maxim Khrolenko  

Para continuar o tema. Há um roteiro

#property strict

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

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

resultado: v1 = 0,06000000, v2 = 0,05000000, enquanto deve ser 0,06000000 em ambos os casos.

Dmitry Fedoseev  
Roman Starinskij:

Olá. Você pode me dizer qual é o problema?

Por que o NormalizeDouble(0,055,2) funciona em torno do número "0,055" a "0,06"?

Não é uma função de arredondamento de fração.

Qual você acha que deveria ser o resultado?
Dmitry Fedoseev  
Maxim Khrolenko:

Para continuar o tema. Há um roteiro

resultado: v1 = 0,06000000, v2 = 0,05000000, enquanto deve ser 0,06000000 em ambos os casos.

Por que diabos não?
Renat Akhtyamov  
Maxim Khrolenko:

Para continuar o tema. Há um roteiro

Resultado: v1 = 0,06000000, v2 = 0,05000000, enquanto deve ser 0,06000000 em ambos os casos.

Bem, vshchupeeeeeeeeeeeeeeeeeeeee....

Deve ser v1=v2=0,06.

Eu nunca sequer chequei... É realmente tão errado?

Você tem MT5 ou MT4?

Dmitry Fedoseev  
new-rena:

bem, wow, wow, wow, wow, wow, wow, wow, wow, wow, wow, wow, wow, wow.

deve ser v1=v2=0,06.

Eu nunca sequer chequei... É realmente uma bagunça assim tão grande?

Por que diabos faria isso?
Dmitry Fedoseev  
new-rena:
Tive F's heterossexuais na escola, mas lembro-me disto...

Interessante, que tipo de escola é esta... Diga-me o que você está pensando. Porque não tenho a menor idéia de como poderia ser tão clichê.

[Excluído]  
Maxim Khrolenko:

Para continuar o tema. Há um roteiro

resultado: v1 = 0,06000000, v2 = 0,05000000, enquanto deve ser 0,06000000 em ambos os casos.

E você normalizou 3 caracteres após o ponto decimal
Razão: