Ermitteln der Anzahl der Dezimalstellen beliebiger Zahlen (nicht nur Anführungszeichen) unter Umgehung von Digits() in MQL4 und MQL5 - Seite 7
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
auf der Grundlage eines Artikels in den Hubs:https://habr.com/company/xakep/blog/257897/
nicht wirklich getestet, aber es scheint zu funktionieren
auf der Grundlage eines Artikels in den Hubs:https://habr.com/company/xakep/blog/257897/
nicht wirklich getestet, aber es scheint zu funktionieren
Wenn das Ergebnis 0,07 lautet, funktioniert es korrekt.
Wenn das Ergebnis 0,07 lautet, funktioniert es korrekt.
funktioniert nicht ((((
funktioniert nicht ((((
Und kein Algorithmus wird funktionieren...
Und kein Algorithmus wird funktionieren...
wird, aber das Problem ist in der gegebenen Genauigkeit und in der Zweckmäßigkeit der großen Rechenkosten, die Zahl der doppelten Präzision kann in jedem Format neu berechnet werden:±sign - (1+mantissa/252) × 2 um- 1023
Es ist einfach, die Mantisse und die Reihenfolge zu extrahieren, aber es ist nicht interessant, dieses Problem direkt zu lösen.
wird, aber das Problem ist in der gegebenen Genauigkeit und in der Zweckmäßigkeit der großen Rechenkosten, die Zahl der doppelten Präzision kann in jedem Format neu berechnet werden:±sign - (1+mantissa/252) × 2 um- 1023
Es ist einfach, die Mantisse und die Reihenfolge zu isolieren, aber es ist uninteressant, dieses Problem frontal zu lösen
Wenn die Genauigkeit gegeben ist, dann macht die ganze Sache keinen Sinn. Ich habe bereits ein Beispiel genannt: 0,07 hat zwei Dezimalstellen. Wenn Sie jedoch versuchen, die Anzahl der Ziffern programmatisch zu berechnen, erhalten Sie dreizehn... Und 0,07 ist nicht das Ergebnis von Berechnungen, sondern wird manuell eingegeben, nicht einmal über eine Variable.
Es gibt auch diese Option:
Kommen Sie zur Vernunft. Das ist ein Unsinn, der nicht einmal ernsthaft diskutiert werden sollte.
Der Autor hat einfach ein völlig falsches Verständnis von der Funktionsweise von Doppelvariablen.
О!
Ich habe nicht behauptet, dass ich alles weiß. Sagen Sie mir lieber, was falsch ist, oder zeigen Sie mir Ihre Version.
Sie möchten wissen, wie viele Dezimalstellen jede Variable vom Typ double in Ihrem Programm definiert ist. Das ist der Unsinn. Alle Variablen vom Typ double haben die gleiche Darstellung. Sie werden als Float - Fließkomma- dargestellt. Manchmal liegt der Punkt links, manchmal rechts - das hängt vom Wert der Zahl ab. Eine Million und ein Millionstel werden mit unterschiedlicher Genauigkeit dargestellt.
Es gibt auch eine solche Variante:
Nein, es wird nicht funktionieren, ich habe es gestern per Typkonvertierung gemacht, hier ist das Skript, Ihr Beispiel und meines:
Ergebnisse:
2018.11.13 01:49:16.131 tst (EURUSD,M30) 1. DoubleToDigits() = 11
2018.11.13 01:49:16.131 tst (EURUSD,M30) 1. Ziffer() = 0
2018.11.13 01:49:16.131 tst (EURUSD,M30) 2. DoubleToDigits() = 3
2018.11.13 01:49:16.131 tst (EURUSD,M30) 2. Ziffer() = 3
Sie könnenFP-Printing-PLDI96. pdf googeln, aber ich bezweifle, dass jemand alles nach dem Algorithmus machen wird.