Rundung von Zahlen in MT4 über NormalizeDouble - Seite 11

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

Und Ihrer ist falsch, tut mir leid...

Und warum?

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

Ihr Beispiel:

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:

Und warum?

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

Ihr Beispiel:

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

Denn die Anweisung"int A = double B + 0.5" ist gelöst: int A = (int)MathCeil(double B); falsch.
 
Алексей Тарабанов:
Denn die Anweisung"int A = double B + 0,5" ist gelöst: int A = (int)MathCeil(double B); falsch.
Wie wird das Problem also gelöst?
 
lilita bogachkova:
Wie wird das Problem also gelöst?
Richtig, d. h. wie ich sagte. Zunächst wird 0,5 zu der Bruchzahl addiert, dann wird der Bruchteil vom Ergebnis abgezogen und das Ergebnis auf eine ganze Zahl gerundet.
 
Dmitry Fedoseev:

Wie wäre es damit?

Dann 5
 
Алексей Тарабанов:
Richtig, d. h. wie ich sagte. Zunächst wird 0,5 zu der Bruchzahl addiert, dann wird der Bruchteil vom Ergebnis subtrahiert und das Ergebnis auf eine ganze Zahl gerundet.
Der Code?
 
lilita bogachkova:
Und wie wird das Problem gelöst?
Er kann es nicht erklären. Stören Sie ihn nicht.
 
Vasyl Nosal:
Der Code?
int A = double B + 0,5
 
Алексей Тарабанов:
Richtig, d. h. wie ich sagte. Zuerst wird 0,5 zur Bruchzahl addiert, dann wird der Bruchteil vom Ergebnis subtrahiert und das Ergebnis auf eine ganze Zahl gerundet.
Nun, dann müssen Sie an servicedesk schreiben, dass sie eine solche ZusatzfunktionMathCeil() erfunden haben :)
 
Vasyl Nosal:
Er kann es nicht erklären. Stören Sie ihn nicht.
Vas, störe bitte nicht die Konversation, wenn du willst.