È possibile ottenere un valore "esatto"? - pagina 4

 
sanyooooook:

a quale funzione ti riferisci?

Il primo a passare la linea o NL?

Funzione NL.

Se è così:

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

Dà 0,44 invece di 0,45.

 
WePlexus:

Funzione NL.

Se è così:

Dà 0,44 invece di 0,45.


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

Funzione NL.

Se è così:

Si ottiene 0,44 invece di 0,45.

Questo perché: MathFloor(valore/passo)=44

L'input è 44.999999999999999999, questa funzione restituisce il numero intero più vicino dal basso.

perché: valore/passo(0,45/0,01)=44,999999999999999999 non è la mia domanda)

 
sanyooooook:

è dal fatto che: MathFloor(valore/passo)=44

Il valore di ingresso è 44,9999999999999999. Questa funzione restituisce l'intero più vicino dal basso.

perché: valore/passo(0,45*100)=44,999999999999999999 non è la mia domanda).

Grazie. :)
 
WePlexus:
Grazie. :)
corretto l'errore nel post
 
WePlexus:
Grazie. :)

Quindi la tua funzione è più corretta )

A proposito, in questo caso tutte le funzioni tranne la mia danno 0,45 ))

 
significa che prima di usare una funzione, i dati di input devono essere controllati e a seconda di quale numero si sceglie una o l'altra funzione)
 
sanyooooook:

quindi la tua funzione è più corretta)

a proposito, in questo caso tutte le funzioni tranne la mia danno 0,45 ))

Beh, Sanyok, sei un bugiardo.

la mia funzione:

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

la mia funzione

è =0,44.
Sì, ma la calcolatrice dice 0,09*5=0,45. :)
 
WePlexus:
Giusto, e il risultato nella calcolatrice è 0,45. :)

Giusto, non stavo prestando attenzione all'inizio.

Motivazione: