Ermitteln der Anzahl der Dezimalstellen beliebiger Zahlen (nicht nur Anführungszeichen) unter Umgehung von Digits() in MQL4 und MQL5 - Seite 5
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
Sie brauchen eine
so dass
war das Ergebnis: 4
Genau vier? Los geht's.
Vielleicht ist das genau die Funktion, die Sie brauchen. Antwort an den TC
Er braucht genau eine solche Funktion, denn (wie Sie richtig bemerkt haben) lassen sich nicht alle Zahlen exakt als Double darstellen, was bedeutet, dass die Lösung des Problems ohne Angabe der Genauigkeit sinnlos ist (weil sie im allgemeinen Fall zu absurden Ergebnissen führt).
Genau das braucht er, denn (wie Sie richtig bemerkten) lassen sich nicht alle Zahlen genau als Pasch darstellen, was bedeutet, dass die Lösung des Problems ohne Angabe der Genauigkeit sinnlos ist (weil sie im Allgemeinen zu absurden Ergebnissen führt).
Welche Möglichkeiten gibt es, die Genauigkeit festzulegen, ohne die Anzahl der Dezimalstellen zu ändern , oder wie kann ich den in meiner Version beschriebenen Nachteil beseitigen? Für mich selbst habe ich nur den (String)Wert
Welche Möglichkeiten gibt es, die Genauigkeit festzulegen, ohne die Anzahl der Dezimalstellen zu ändern , oder wie kann ich den in meiner Version beschriebenen Nachteil beseitigen? Für mich selbst habe ich nur den (String)Wert
Ich vermute, Sie meinen, innerhalb welcher Grenzen die letzte Nicht-Null zu suchen ist.
Ich habe versucht, eine Berechnung der Anzahl der Nachkommastellen durch MathMod() mit einer aufeinanderfolgenden Teiler 0,1, dann 0,01 ... 0,000(15 Nullen) 1 zu tun, hat es nicht funktioniert, die Genauigkeit der Zahl hält "Floating" müssen jedes Mal zu normalisieren, und wenn Sie Normalisierung verwenden, dann ist es einfacher, die Zahl, die Sie wollen und normalisiert zu vergleichen, was Zeichen - wenn anders, dann fand das letzte Zeichen
HH: es gibt eine weitere Möglichkeit, hatte keine Zeit zu überprüfen - multiplizieren Sie eine reelle Zahl ohne einen ganzzahligen Teil von 10 ^ 16 und speichern Sie alles in lang, und dann durch 10 teilen und überprüfen Sie den Rest der Division, wenn = 0, dann wieder teilen
ZS: es gibt noch eine andere Möglichkeit, ich hatte noch keine Zeit zu prüfen - multiplizieren Sie eine reelle Zahl ohne einen ganzzahligen Teil mit 10^16 und speichern Sie alles in Long, und dann teilen Sie durch 10 und prüfen Sie den Rest der Division, wenn = 0, dann teilen Sie wieder
Es wird nicht funktionieren.
Verwenden SiedoublePoint()
Auch getestet, keine Chance.
Das war's.
Sie führt zu folgendem Ergebnis
Auch getestet, es funktioniert nicht.