Ermitteln der Anzahl der Dezimalstellen beliebiger Zahlen (nicht nur Anführungszeichen) unter Umgehung von Digits() in MQL4 und MQL5 - Seite 3

 
A100:

Was hat das mit dem Geist zu tun?

Print(500000000000.00001); // 500000000000.0
 
Das ist einfach unglaublich! So hartnäckig und in aller Ernsthaftigkeit zu beweisen, dass die falsche Antwort die richtige ist. Es ist nicht meine Schuld, er hat es sich ausgedacht))
 
Alexandr Sokolov:

Aus irgendeinem Grund ist es hier im Forum so, aber im Editor ist es dasselbe wie sonst auch

Nun, ich würde nachsehen, ob ich diesen Namen schon einmal verwendet habe.

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

Nun, ich würde nachsehen, ob ich diesen Namen schon irgendwo anders verwendet habe.

Im Editor wird der Name des Variablenwerts nicht blau angezeigt (nur im Forum). Und sie ist nur in MQL4 blau, während sie in MQL5 wie üblich schwarz ist. Ich weiß nicht, warum das so ist, und es scheint die Korrektheit des Codes nicht zu beeinträchtigen; niemand hat sich mit Screenshots beschwert).

 
fxsaber:

Bei den Doppelgängern gibt es keine solche Zahl. Sie ist ungefähr gleich 500000000.00100016593933105. Sie wird zugewiesen.

Sie haben es verstanden. Und wie viele Nachkommastellen gibt es? 8?

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

Nicht "Sie haben 8", mql hat standardmäßig 8. Können wir die Dokumentation nicht lesen?

Was ist der Standardwert 8 in MQL? Wo ist der Link zur Dokumentation? Und was hat das mit dem ursprünglichen Problem zu tun?

 
   double x=500000000.0001;
   
   Alert((500000000.0001==NormalizeDouble(500000000.0001,4))); // true
 
int d(double x){
   int n;
   for(n=0;n<8;n++){
      if(x==NormalizeDouble(x,n)){
         return(n);
      }
   }
   return(n-1);
}
 
Dmitry Fedoseev:

Ich knie nieder.

 

Dmitry Fedoseev:

int d(double x){
   int n;
   for(n=0;n<8;n++){
      if(x==NormalizeDouble(x,n)){
         return(n);
      }
   }
   return(n-1);
}
Ich glaube, das funktioniert auch, aber ich habe noch nichts getestet, aber ich verstehe die Idee, und Fehler können im Laufe der Arbeit korrigiert werden (falls es welche gibt)