Vom documentation for real
Hinweis: QML alle reellen Zahlen in doppelter Genauigkeit gespeichert sind, Floating-Point-Format IEEE.
Vom documentation on data type conversion
+----------------+----------------+
| Qt Type | QML Basic Type |
+----------------+----------------+
| [...] | [...] |
| double | double |
| [...] | [...] |
| float, qreal | real |
+----------------+----------------+
So, nach der Dokumentation nicht alles neccessarily zu real
gegossen wird, aber alles wird die gleiche Präzision, so dass ich denke, man kann sie werfen oder vergleichen, wie du magst.
Sie können entweder eine JavaScript Library erstellen, in der Sie die Funktion implementieren, wie in Ihrer Frage beschrieben. Sie können ein C++ - Objekt und expose a this function erstellen, sodass Sie die Implementierung direkt in C++ haben Dann können Sie entscheiden, ob Sie dieses Objekt in jeder Datei instanziieren, wo Sie es benötigen oder ob Sie eine Singleton-Instanz als Bibliothek erstellen. AFAIK QML hat Probleme mit statischen Funktionen und benötigt eine Instanz des Objekts.
Ich kenne keine vordefinierte Variable in QML, die eine epsilon
angibt. In C++, für mich ist:
std::numeric_limits<double>::epsilon() -> 2.220446049250313e-16
so etwas um dies könnte eine gute Wahl sein.
so, wenn ich vergleiche, habe ich eine hohe Präzision Vergleich mit epsilon tun wollen. Schlägst du irgendetwas vor, wie soll ich das in einer 'qml' Datei machen? ODER denken Sie, dass es unnötig ist, folgende (in Frage stehende) Methode in einer 'qml' Datei zu replizieren? 'Bool AreSame (doppelte a, doppelte b) { Rücksendungen (a - b)
Ok, ich konzentrierte mich hauptsächlich auf" * Oder, ist es, dass es zu real in QML gegossen wird und man sich nicht darum kümmern muss? * " – derM
:) Primäres Ziel dieser Frage ist, wie man das repliziert: - 'bool AreSame (doppelte a, doppelte b) {return fabs (a - b)