Ist es möglich, einen "genauen" Wert zu erhalten? - Seite 6

 
abolk:

Um dieses Problem zu lösen, muss 0,09*5 =0,45 sein, nicht =0,44999999999999999

und wenn es sie nicht gibt, ist das Problem unlösbar.

0.09*5=0.45 )

Kannst du nicht zählen?)

 
sanyooooook:

0.09*5=0.45 )

Du weißt nicht, wie man zählt, oder?)

Das ist richtig, das Beispiel wurde gegeben, dass es 0,44 statt 0,45 wegen "seiner" Arbeit in MQL zählt. Ich bin mit der Sprache nicht vertraut, aber es ist seltsam, warum eine große Zahl abgeschnitten wird, ich meine, warum sie, wenn sie den Grenzwert überschreitet, gerundet, aber nicht abgeschnitten wird. Es wäre großartig, wenn die Methode des "exakten Fadenabschneidens", vielleicht die, die ich oben zitiert habe, in MQL zur Verfügung stünde. :)
 
WePlexus:
Das ist richtig, das Beispiel wurde gegeben, dass es 0,44 statt 0,45 zählt, weil MQL so funktioniert. Ich kenne die Sprache nicht genau, aber es ist seltsam, warum eine große Zahl abgeschnitten wird, ich meine, warum die Zahl, wenn sie den Grenzwert überschreitet, abgerundet wird, anstatt abgeschnitten zu werden. Es wäre großartig, wenn die Methode des "exakten Fadenabschneidens", vielleicht die, die ich oben zitiert habe, in MQL zur Verfügung stünde. :)
weil es in der Mathematik üblich ist, dass der Wert gerundet wird, wenn man die Anzahl der Dezimalstellen entfernen will.
 
sanyooooook:
weil es in der Mathematik üblich ist, dass der Wert gerundet wird, wenn die Anzahl der Dezimalstellen entfernt werden soll.
miudro
 
Ich danke Ihnen für Ihre Hilfe.
 
immer
 
WePlexus:
Ich kenne die Sprache nicht genau, aber es ist seltsam, warum eine große Zahl abgeschnitten wird, ich meine, warum die Zahl, wenn sie den Grenzwert überschreitet, abgerundet wird, anstatt abgeschnitten zu werden. Es wäre großartig, wenn die Methode des "exakten Fadenabschneidens", vielleicht die, die ich oben zitiert habe, in MQL zur Verfügung stünde. :)
So habe ich verstanden, wie das "exakte Beschneiden" nützlich sein kann. Nun, abgesehen von einem Gefühl der Zufriedenheit und des berechtigten Stolzes über das gelöste Problem :).
 
Aufrunden ist einfacher
 
abolk:

Dies ist die Höchstzahl, bei der eine Normalisierung stattfindet:

Nimmt man eine weitere 9, normalisiert sich der Wert auf 0,02.

Aber meine Funktion erfüllt die Aufgabe:

Normalize ("0.01999999999999999999999999999999", 6)

Sie gibt 0,019999 aus. Dann können Sie die Zahl in den richtigen Typ umwandeln und mit ihr rechnen.

Wenn Sie eine Zahl ohne Anführungszeichen in die Funktion eingeben, ist das Ergebnis 0,02.

 
WePlexus:

Es gibt mehrere Möglichkeiten, Ihr Problem zu lösen - jede davon hat ihre Vor- und Nachteile, was die Genauigkeit und die Geschwindigkeit des Ergebnisses angeht.

Die Arbeit mit Fließkommazahlen hat ihre Eigenheiten - man muss sie verstehen - und um diese Eigenheiten + für Ihr Problem zu verstehen - müssen Sie nach einer Lösung suchen.