Arrondir les nombres dans MT4 via NormalizeDouble - page 11

 
Алексей Тарабанов:

Et la vôtre est fausse, je suis désolé...

Pourquoi ?

void OnStart()
  {
   for(int i=1;i<=9;i++)
     {
      double v1=0.1*i;

      Print("v1 = ",v1," = ",DoubleToString(MathCeil(v1),2));
     }
  }

0 22:49:08.463 ! tests GBPUSDbc,H1 : v1 = 0.1 = 1.00

0 22:49:08.463 ! tests GBPUSDbc,H1 : v1 = 0.2 = 1.00

0 22:49:08.463 ! tests GBPUSDbc,H1 : v1 = 0.3 = 1.00

0 22:49:08.463 ! tests GBPUSDbc,H1 : v1 = 0.4 = 1.00

0 22:49:08.463 ! tests GBPUSDbc,H1 : v1 = 0.5 = 1.00

0 22:49:08.463 ! tests GBPUSDbc,H1 : v1 = 0.6 = 1.00

0 22:49:08.463 ! tests GBPUSDbc,H1 : v1 = 0.7 = 1.00

0 22:49:08.463 ! tests GBPUSDbc,H1 : v1 = 0.8 = 1.00

0 22:49:08.463 ! tests GBPUSDbc,H1 : v1 = 0.9 = 1.00

Votre exemple :

0.1+0.5=0.6 = 1

0.2+0.5=0.7 = 1

0.3+0.5=0.8 = 1

0.4+0.5=0.9 = 1

0.5+0.5=1.0 = 1

0.6+0.5=1.1 = 1

0.7+0.5=1.2 = 1

0.8+0.5=1.3 = 1

0.9+0.5=1.4 = 1

 
lilita bogachkova:

Pourquoi ?

0 22:49:08.463 ! tests GBPUSDbc,H1 : v1 = 0.1 = 1.00

0 22:49:08.463 ! tests GBPUSDbc,H1 : v1 = 0.2 = 1.00

0 22:49:08.463 ! tests GBPUSDbc,H1 : v1 = 0.3 = 1.00

0 22:49:08.463 ! tests GBPUSDbc,H1 : v1 = 0.4 = 1.00

0 22:49:08.463 ! tests GBPUSDbc,H1 : v1 = 0.5 = 1.00

0 22:49:08.463 ! tests GBPUSDbc,H1 : v1 = 0.6 = 1.00

0 22:49:08.463 ! tests GBPUSDbc,H1 : v1 = 0.7 = 1.00

0 22:49:08.463 ! tests GBPUSDbc,H1 : v1 = 0.8 = 1.00

0 22:49:08.463 ! tests GBPUSDbc,H1 : v1 = 0.9 = 1.00

Votre exemple :

0.1+0.5=0.6 = 1

0.2+0.5=0.7 = 1

0.3+0.5=0.8 = 1

0.4+0.5=0.9 = 1

0.5+0.5=1.0 = 1

0.6+0.5=1.1 = 1

0.7+0.5=1.2 = 1

0.8+0.5=1.3 = 1

0.9+0.5=1.4 = 1

Parce que l'énoncé"int A = double B + 0,5" est résolu : int A = (int)MathCeil(double B) ; incorrect.
 
Алексей Тарабанов:
Parce que l'énoncé"int A = double B + 0,5" est résolu : int A = (int)MathCeil(double B) ; incorrect.
Alors comment le résoudre ?
 
lilita bogachkova:
Alors, comment cela se résout-il ?
Correct, c'est-à-dire comme je l'ai dit. Tout d'abord, 0,5 est ajouté au nombre fractionnaire, puis la partie fractionnaire est soustraite du résultat et le résultat est arrondi à un nombre entier.
[Supprimé]  
Dmitry Fedoseev:

Que pensez-vous de ça ?

Puis 5
[Supprimé]  
Алексей Тарабанов:
Correct, c'est-à-dire comme je l'ai dit. Tout d'abord, 0,5 est ajouté au nombre fractionnaire, puis la partie fractionnaire est soustraite du résultat et le résultat est arrondi au nombre entier.
Le code ?
[Supprimé]  
lilita bogachkova:
Alors, comment cela se résout-il ?
Il ne peut pas expliquer. Ne le dérangez pas.
 
Vasyl Nosal:
Le code ?
int A = double B + 0,5
 
Алексей Тарабанов:
Correct, c'est-à-dire comme je l'ai dit. Tout d'abord, 0,5 est ajouté au nombre fractionnaire, puis la partie fractionnaire est soustraite du résultat et le résultat est arrondi au nombre entier.
Dans ce cas, vous devez écrire à Servicedesk qu'ils ont inventé une telle fonction supplémentaireMathCeil():)
 
Vasyl Nosal:
Il ne peut pas expliquer. Ne le dérangez pas.
Vas, ne dérange pas la conversation, s'il te plaît.