Fehler, Irrtümer, Fragen - Seite 1129

 

A100:
32'535'244'799 != 32'535'215'999 - какое правильное? 

Der richtige Wert wäre 32'535'215'999 für"3000.12.31 23:59:59".

Und32'535'244'799 wäre korrekt für"3001.01.01 07:59:59"

 
Fleder:

Der Grenzwert für den Typ datetime ist einfach nicht korrekt definiert:

Offensichtlich wird bei der Festlegung des Grenzwertes die Möglichkeit berücksichtigt, die Ortszeit gleichzeitig in GMT oder UTC darzustellen. Es wäre dann sinnvoll, einen größeren Bereich (+/-12 Stunden) von -43'200 bis 32'535'291'599 festzulegen.
 
Fleder:

Der Compiler behandelt die Zahl 13,7 als den Typ double. Gleichzeitig kann diese Zahl aber auch verlustfrei in den Typ float umgewandelt werden

und diese Warnung ist unnötig.

Woher wissen Sie, dass eine reelle Zahl 13,7 verlustfrei in den Typ Float umgewandelt werden kann?
 
stringo:
Woher wissen Sie, dass die reelle Zahl 13,7 ohne Verluste in den Typ Float umgewandelt werden kann?

Nicht wahr? Die Zahl 13,7 = 0,137*1e+2. Gibt es durch die Umwandlung von drei Dezimalstellen in den Typ Float irgendwelche Verluste? Nach dem, was ich gesehen habe, geht die Genauigkeit verloren, wenn Sie versuchen, die

Zahlen mit sechs oder mehr Dezimalstellen.

Ich habe versucht, den Float-Typ zu verwenden, um fünfstellige Anführungszeichen (z. B. 1,38829) in einer Binärdatei zu speichern. Nachdem ich sie aus der Datei gelesen und versucht habe, sie in einem Diagramm als

Der Chart-Indikator, der auf die Candlesticks des Charts angewendet wird, weist kleine Unstimmigkeiten auf. Nach der Normalisierung auf die fünfte Stelle sind sie jedoch verschwunden.

Dabei kam es jedoch zu einem doppelten Genauigkeitsverlust: zuerst von Double zu Float und dann wieder von Float zu Double.

 
https://www.mql5.com/ru/docs/convert/normalizedouble Fleder:

Nicht wahr? Die Zahl 13,7 = 0,137*1e+2. Gibt es durch die Umwandlung von drei Dezimalstellen in den Typ Float irgendwelche Verluste? Nach dem, was ich gesehen habe, geht die Genauigkeit verloren, wenn Sie versuchen, die

Zahlen mit sechs oder mehr Dezimalstellen.

Ich habe versucht, den Float-Typ zu verwenden, um fünfstellige Anführungszeichen (z. B. 1,38829) in einer Binärdatei zu speichern. Nach dem Einlesen der Daten aus der Datei und dem Versuch, sie in einem Diagramm anzuzeigen als

Der Chart-Indikator, der auf die Candlesticks des Charts angewendet wird, weist einige kleine Unstimmigkeiten auf. Nach der Normalisierung auf die fünfte Stelle sind sie jedoch verschwunden.

Aber es gab einen doppelten Genauigkeitsverlust: zuerst von Double zu Float und dann wieder von Float zu Double.

Nein. Es ist ein unendlicher Bruch. Wir haben geschrieben und geschrieben, aber Sie lesen nicht.
 
stringo:
Nein. Es ist ein endloser Bruch. Wir schrieben und schrieben und Sie lesen nicht

Wir lesen! Aber der Verlust geschieht "technisch" (Besonderheiten des Formats) und in den Fraktionen, die gar nicht benötigt werden.

void OnStart()
{
  Print((float)(13.7));   //13.7 - потерь "не видно"
  Print((double)(13.7));  //13.7 - здесь тоже
}
Особенности работы с числами типа double в MQL4 - Статьи по MQL4
  • www.mql5.com
Особенности работы с числами типа double в MQL4 - Статьи по MQL4: примеры использования экспертов, тестирования и оптимизации
 
A100:

Ich hatte diesen Absturz auch schon. Tritt bei der Ausführung eines Skripts auf, wenn das Terminal (910) und der Compiler (921) nicht übereinstimmen

Hier ist der Code

class A  {
        int     array[];
};
void OnStart()
{
        A *a = new A();
        if ( a != NULL )
                delete( a );
}

Compiler 930, Terminal 910. Ergebnis:

 
A100:

Hier ist der Code

Compiler 930, Terminal 910. Ergebnis:

Wie kommt es, dass das Terminal auf 910 und der Compiler auf 930 steht?

Wenn beide 910 sind, stürzt das Skript nicht ab.

 

Nur nicht ein Terminal (ich weiß es nicht genau, aber ich glaube, das ist auf dem Markt üblich)

Ich kann das Original aus dem Ordner ...\MQL5\Scripts weitergeben

Dateien:
Crash.ex5  4 kb
 
A100:

Nur nicht ein Terminal (ich weiß es nicht genau, aber ich glaube, das ist auf dem Markt üblich)

Ich kann das Original aus dem Ordner ...\MQL5\Scripts weitergeben

Nun, das ist, was ich hatte, um zu beweisen,Win XP 32 bit:


Grund der Beschwerde: