Arrondir les nombres dans MT4 via NormalizeDouble - page 12

 
lilita bogachkova:
Vous devriez alors écrire au Service Desk qu'ils ont inventé une telle fonction supplémentaireMathCeil():)
C'est juste différent, et ça ne me dérange pas trop :)
 
Алексей Тарабанов:
int A = double B + 0,5
Il a raison :"D'abord, 0,5 est ajouté au nombre fractionnaire, puis lapartie fractionnaireest coupée et le résultat est arrondi à l'entier", mais MQ nous a donnéMathCeil() pour nous épargner la peine,etMathCeil()renvoie la valeur entière supérieure suivante, sans arrondi
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:
Cinq, alors.
Qu'est-ce qui est 5 ? La normalisation d'un tel nombre transforme tous les 9 en zéros, donc la normalisation puis l'élimination donneront des résultats erronés.
 
lilita bogachkova:
Il a raison :"D'abord, 0,5 est ajouté au nombre fractionnaire, puisla partie fractionnaireest coupée du résultat et le résultat est arrondi à l'entier.", mais MQ nous a donnéMathCeil() pour ne pas s'en soucier.
Merci, Sunny, mais MathCeil ne fonctionne qu'avec le double : en entrée et en sortie :)
 
Алексей Тарабанов:
Merci, Sunny, mais MathCeil ne fonctionne qu'avec le double : en entrée et en sortie :)
résolu : int A = (int)MathCeil(double B) ;
 
lilita bogachkova:
est résolu : int A = (int)MathCeil(double B) ;
Désolé :int A =(int)MathCeil(double B+0.5)
 
Алексей Тарабанов:
Désolé :int A =(int)MathCeil(double B+0.5)
Pas un :résolu : int A =(int)MathCeil(double B) ;
 
lilita bogachkova:
Pas un :résolu : int A =(int)MathCeil(double B) ;
essayez : int A = MathCeil(2.6)
 
Алексей Тарабанов:
essayez : int A = MathCeil(2.4)

int A = MathCeil(2.4)=3

int A = MathCeil(2.4+0.5) =3

mais

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

mais

int A = MathCeil(2.6+0.5) =4

Le diable est confus... 2.6, bien sûr. Les chiffres sont étranges...