
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Ha fatto funzioni per arrotondare il fondo e la parte superiore una volta
Potrebbe aiutare qualcuno
Ha fatto funzioni per arrotondare il fondo e la parte superiore una volta
Potrebbe aiutare qualcuno
cerca di ottenere un risultato di0,999999999999999999999
X = 0.99999999999999999
10*X = 10*0.99999999999999999
10*X-X = 10*0.999999999999999-0.9999999999999
9*X = 9*0.99999999999999999
otteniamo 9*X = 9 o X è uguale a 1 (uno)
v1 = (1/3) = 0,3333333333 | v2 = 3*(1/3) = 1,00000000
o 0,99999999999999999 = 1,0
v1 (1.00000000) >= 1.0
Grazie a tutti per l'utile thread!
Ho scelto la soluzione di arrotondare 1 cifra in più tramiteNormalizeDouble, e poi tagliare l'ultima cifra. Finora, è completamente adatto.
Ancora sull'arrotondamento......
Per favore consigliatemi sulla situazione (non tirate pomodori, sono un umanitario),
esiste una tale variabile:
double delta=NormalizeDouble(new_lot-sum_lots,Lots_Digits);
if(delta>0) delta-=OrderLots();
if(delta<0) delta+=OrderLots();
Il delta è originariamente normalizzato,
OrderLots dovrebbe probabilmente restituire dubs normalizzati,
ma in qualche modo a volte in rare occasioni ottengo numeri come 2.775557561562891e-17
Quindi è quasi zero ma non zero.......
prima domanda - è normale?
seconda domanda - come ho capito sarà sufficiente per me fare la seconda normalizzazione per evitare le code?
Terza domanda (sento che non la capirò comunque, ma la faccio lo stesso):
l'addizione di due numeri normalizzati può dare numeri non normalizzati?
P.S. Mi scuso per aver sollevato di nuovo la questione, ma non ho la forza di rileggere tutto di nuovo
Ancora sull'arrotondamento......
Per favore consigliatemi sulla situazione (non tirate pomodori, sono un umanitario),
esiste una tale variabile:
double delta=NormalizeDouble(new_lot-sum_lots,Lots_Digits);
if(delta>0) delta-=OrderLots();
if(delta<0) delta+=OrderLots();
Il delta è originariamente normalizzato,
OrderLots dovrebbe probabilmente restituire dubs normalizzati,
ma in qualche modo a volte in rare occasioni ottengo numeri come 2.775557561562891e-17
Quindi è quasi zero ma non zero.......
prima domanda - è normale?
seconda domanda - come ho capito sarà sufficiente per me fare la seconda normalizzazione per evitare le code?
Terza domanda (sento che non la capirò comunque, ma la faccio lo stesso):
l'addizione di due numeri normalizzati può dare numeri non normalizzati?
P.S. Scusatemi se lo ripropongo, ma non ho l'energia per rileggerlo tutto.
P.S. Mi scuso per aver sollevato di nuovo la questione, ma non ho l'energia per ripercorrere tutto di nuovo
È meglio controllare da soli con diversi esempi, vi darà una comprensione.
L'unica cosa è che lo sto facendo male:
ma così.
Per i numeri doppi. Non so se conta davvero, ma non ho mai incontrato un errore con la mia variante (cerco di confrontare solo gli stessi tipi di variabili).
Non so se ha davvero importanza, ma non ho mai incontrato un errore con la mia versione (cerco solo di confrontare gli stessi tipi di variabili).