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

 
sanyooooook:

Welche Funktion meinen Sie?

Zuerst durch die Linie oder NL?

NL-Funktion.

Wenn ja:

NL (2, 0.09 * 5); // 0.44

Es ergibt 0,44 statt 0,45.

 
WePlexus:

NL-Funktion.

Wenn ja:

Es ergibt 0,44 statt 0,45.


   Print(NL(DIGITS,0.45));
2014.10.04 13:13:03.089 normalize EURUSD,H4: 0.45
 
WePlexus:

NL-Funktion.

Wenn ja:

Sie erhalten 0,44 statt 0,45.

Der Grund dafür ist: MathFloor(Wert/Schritt)=44

Die Eingabe ist 44,9999999999999999, diese Funktion gibt die nächstliegende ganze Zahl von unten zurück.

warum: Wert/Schritt(0,45/0,01)=44,9999999999999999 ist nicht meine Frage )

 
sanyooooook:

ist die Tatsache, dass: MathFloor(Wert/Schritt)=44

Der Eingabewert ist 44,99999999999999. Diese Funktion gibt die nächstliegende Ganzzahl von unten zurück.

warum: Wert/Schritt(0,45*100)=44,9999999999999999 ist nicht meine Frage).

Ich danke Ihnen. :)
 
WePlexus:
Ich danke Ihnen. :)
den Fehler im Beitrag korrigiert
 
WePlexus:
Danke. :)

Ihre Funktion ist also richtiger)

Übrigens, in diesem Fall ergeben alle Funktionen außer meiner 0,45 ))

 
das bedeutet, dass vor der Verwendung einer Funktion die Eingabedaten geprüft werden müssen und je nachdem, welche Zahl Sie wählen, die eine oder andere Funktion)
 
sanyooooook:

Ihre Funktion ist also korrekter)

Übrigens ergeben in diesem Fall alle Funktionen außer meiner 0,45 ))

Nun, Sanyok, du bist ein Lügner.

meine Funktion:

//double d=0.019999999999999999;
double d=0.09*5;
double e=(int)(d*100)/100.0;
Print("e=",e);
=0.44
 
abolk:

meine Funktion

ist =0,44.
Ja, aber der Taschenrechner sagt 0,09*5=0,45. :)
 
WePlexus:
Richtig, und das Ergebnis des Taschenrechners ist 0,45. :)

Richtig, ich habe zuerst nicht aufgepasst.