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
@fxsaber NormalizeDouble rundet auf Dezimalstellen, was sich von der Rundung auf signifikante Stellen unterscheidet. SF ist 1-15 oder 17 einschließlich. Es gibt keine 0.
Das habe ich nicht verstanden.
NormalizeDouble(12,345, 2) -> 12,35
RoundToSignificantDigits(12.345, 2) -> 12
EqualDouble() wird verwendet, um mutmaßlich gleiche Beträge wie 1.123456 und 1.23456789 zu vergleichen.
kann auch für sehr große Zahlen wie 1234567891234.1234 und 1234567891234.1255 verwendet werden
ohne die Dezimalstellen der Zahlen zu kennen, die man miteinander vergleicht.https://www.wikiwand.com/en/Significant_figures
https://chem.libretexts.org/Bookshelves/General_Chemistry/Book%3A_Chem1_(Lower)/04%3A_Grundlagen_der_Chemie/4.06%3A_Signifikante_Zahlen_und_Rundungen
https://www.calculatorsoup.com/calculators/math/significant-figures-rounding.php
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Bibliotheken: Math Utils
fxsaber, 2023.02.21 21:01
Du musst lernen, wie man richtige Leistungsmessungen durchführt.
21 mal schneller.
@fxsaber Ich habe gestern nicht nach Ihnen geschaut!
Aber als ich heute zurückkam, habe ich festgestellt, dass du den Benchmark falsch durchgeführt hast. Du hast nur den modulo %-Operator gemessen, aber mit einigen compilerinternen Optimierungen hast du diesen unrealistischen Unterschied erhalten.
Ich habe diesen einfachen Benchmark verwendet, um ihn erneut zu überprüfen. Beide Funktionen sind schnell genug. Also, keine Änderung!
@fxsaber Ich habe nicht nach Ihnen gesehen, gestern!
Aber als ich heute zurückkam, stellte ich fest, dass du den Benchmark falsch durchgeführt hast. Du hast nur den modulo %-Operator gemessen, aber mit einigen compilerinternen Optimierungen hast du diesen unrealistischen Unterschied erhalten.
Ich habe diesen einfachen Benchmark verwendet, um ihn erneut zu überprüfen. Beide Funktionen sind schnell genug. Also, keine Änderung!
Sie ziehen falsche Schlüsse.
// 200000000.0bedeutet, dass die Funktionsaufrufe vom Compiler nicht optimiert wurden. Ich weiß nicht, warum Sie das 3. Argument manipulieren, lassen Sie es als Standardparameter und testen Sie es erneut.
Verwenden Sie eine einfache Schleife.
bedeutet, dass die Funktionsaufrufe vom Compiler nicht optimiert wurden. Ich weiß nicht, warum Sie das 3. Argument manipulieren, lassen Sie es als Standardparameter und testen Sie es erneut.
Verwenden Sie eine einfache Schleife.
Leider verstehen Sie nicht, was Sie messen.
Deaktivieren Sie die Compiler-Optimierungen und versuchen Sie es erneut.
Warum also deaktivieren? Ich schreibe die Funktion, dann bin ich auf den optimierenden Compiler angewiesen.
Sonst würde ich in Assembler programmieren, wie in den alten Zeiten :-)