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

 
lilita bogachkova:
Então você deve escrever ao Service Desk que eles inventaram uma função tão extraMathCeil():)
É apenas diferente, e não me incomoda muito :)
 
Алексей Тарабанов:
int A = duplo B + 0,5
Ele está certo sobre:"Primeiro, 0,5 é adicionado ao número fracionário e depois aparte fracionáriaé cortada e o resultado é arredondado para inteiro", mas MQ nos deuMathCeil() para salvar o problema,eMathCeil()retorna o próximo valor inteiro mais alto , não arredondando
void OnStart()
  {
   ushort  Characters_delete=14;
   for(int i=0;i<=Characters_delete;i++)
     {
      double v1=i+0.999999999999999;

      int v2=v1+0.5;
      Print("v1 = ",i," = ",DoubleToString(v2,2));
     }
  }
 
Vasyl Nosal:
Cinco, então.
O que é 5? A normalização de tal número transforma todos os 9s em zeros, então a normalização e o descarte darão os resultados errados.
 
lilita bogachkova:
Ele está certo sobre:"Primeiro, 0,5 é adicionado ao número fracionário e depoisa parte fracionadaé cortada do resultado e o resultado é arredondado para inteiro", mas MQ nos deuMathCeil() para não nos preocuparmos com isso.
Obrigado, Sunny, mas MathCeil só trabalha com o dobro: tanto entrada como saída :)
 
Алексей Тарабанов:
Obrigado, Sunny, mas MathCeil só trabalha com o dobro: tanto entrada como saída :)
resolvido: int A = (int)MathCeil(duplo B);
 
lilita bogachkova:
é resolvido: int A = (int)MathCeil(duplo B);
Desculpe:int A =(int)MathCeil(duplo B+0,5)
 
Алексей Тарабанов:
Desculpe:int A =(int)MathCeil(duplo B+0,5)
Não a:resolvido: int A =(int)MathCeil(duplo B);
 
lilita bogachkova:
Não a:resolvido: int A =(int)MathCeil(duplo B);
tentativa: int A = MathCeil(2.6)
 
Алексей Тарабанов:
tentativa: int A = MathCeil(2.4)

int A = MathCeil(2.4)=3

int A = MathCeil(2,4+0,5) =3

mas

int A = MathCeil(2,6+0,5) =4

int A = MathCeil(2.6) =3

 
lilita bogachkova:

int A = MathCeil(2.4)=3

int A = MathCeil(2,4+0,5) =3

mas

int A = MathCeil(2,6+0,5) =4

O diabo está confuso... 2.6, é claro. Os números são estranhos...