Arredondamento de números em MT4 via NormalizeDouble - página 5

 
Dmitry Fedoseev:

Aqui está o seu código:

Coloque 3 ao invés de 2 e é 0,036

Funcionou! Obrigado. Eu normalizo para 3 e depois aparo os dígitos extras após o ponto decimal.

Você pode me dizer se existe uma função padrão para aparar os dígitos H após a vírgula? Como StringSubStr somente se for um número fracionário.

 
Roman Starinskij:

É assim que funciona! Obrigado. Eu normalizo para 3 dígitos e depois aparo os dígitos extras após o ponto decimal.

Você pode me dizer se existe uma função padrão para aparar os dígitos H após o ponto decimal? Como StringSubStr somente se for um número fracionário.

Se você quiser aparar dígitos ao exibi-los na tela (log), há DoubleToString() para isso.
 
Ihor Herasko:
Se você estiver falando de dígitos de corte ao sair para a tela (log), então DoubleToString() é para isso.

Não. O DoubleToString funciona exatamente como o NormalizeDouble().

 
Roman Starinskij:

É assim que funciona! Obrigado. Eu normalizo para 3 dígitos e depois aparo os dígitos extras após o ponto decimal.

Você pode me dizer se existe uma função padrão para aparar os dígitos H após o ponto decimal? Como StringSubStr somente se for um número fracionário.

Não existe tal função, pois não é necessária. Sua calculadora está errada.
 
Roman Starinskij:

Você pode me dizer se existe uma função padrão para truncar os dígitos H após o ponto decimal? Como StringSubStr somente se for um número fracionário.

Eu uso um, mas é 'não-padrão':

//+------------------------------------------------------------------+
//| Double Crop function                                             |
//+------------------------------------------------------------------+
double DoubleCrop(double value,int crop)
  {
   string ValueToString="";
   ValueToString=DoubleToString(value,crop);
   return StringToDouble(ValueToString);
  }
//+------------------------------------------------------------------+
 
lilita bogachkova:

Eu uso um, mas é 'costume':

Qual é a jogada genial?

string ValueToString="";
   ValueToString=DoubleToString(value,crop);
 
lilita bogachkova:

Eu uso um, mas é "fora da caixa":

Apenas escreveu, DoubleToString não apara, ele funciona da mesma forma que NormalizeDouble - ele arredonda. Nah... estamos em um bulldozer.
 

Uma falha é detectada:

   Alert(
         DoubleToStr(1.15,1)+" "+
         DoubleToStr(1.25,1)+" "+
         DoubleToStr(1.35,1)+" "+
         DoubleToStr(1.45,1)
         );

Resultado: 1.1 1.3 1.4 1.5

Com 1,15 houve um descarte e com números de aço houve um arredondamento.

 
Dmitry Fedoseev:

Uma falha é detectada:

Resultado: 1.1 1.3 1.4 1.5

Com 1,15 houve um descarte e com números de aço houve um arredondamento.

Sim, devo admitir que o utilizo sem verificar o resultado :(((
 

Até que os desenvolvedores removam

it

StringLen

O número de caracteres na corda, não incluindo o zero de trilha.

não há nada que se possa fazer a respeito da truncagem.

Razão: