Est-il possible d'obtenir une valeur "exacte" ? - page 6

 
abolk:

Pour résoudre ce problème, 0,09*5 doit être =0,45, et non =0,44999999999999999.

et si elle n'existe pas, le problème est insoluble.

0.09*5=0.45 )

ne savez-vous pas compter ?)

 
sanyooooook:

0.09*5=0.45 )

Vous ne savez pas compter, n'est-ce pas ?)

C'est vrai, j'ai donné un exemple qui compte 0,44 au lieu de 0,45 à cause de "son" travail dans MQL. Je ne suis pas familier avec le langage, mais c'est étrange, pourquoi un grand nombre est coupé, je veux dire pourquoi, quand il dépasse la limite, il est arrondi mais pas coupé. Ce serait formidable si la méthode de "taille exacte des cordes", peut-être celle que j'ai citée plus haut, était dans MQL pour être utilisée. :)
 
WePlexus:
C'est exact, l'exemple a été donné qu'il compte 0,44 au lieu de 0,45 à cause de "son" travail dans MQL. Je ne connais pas la langue à fond, mais il est bizarre qu'un grand nombre soit coupé, je veux dire, pourquoi lorsque le nombre dépasse la limite, il est arrondi au lieu d'être coupé. Ce serait formidable si la méthode de "rognage exact des cordes", peut-être celle que j'ai citée plus haut, était dans MQL pour être utilisée. :)
parce qu'il est courant en mathématiques que, si l'on veut supprimer le nombre de décimales, la valeur soit arrondie.
 
sanyooooook:
parce qu'il est courant en mathématiques que si le nombre de décimales doit être supprimé, la valeur soit arrondie.
miudro
 
Merci pour votre aide.
 
toujours
 
WePlexus:
Je ne connais pas la langue à fond, mais il est bizarre qu'un grand nombre soit coupé, je veux dire, pourquoi lorsque le nombre dépasse la limite, il est arrondi au lieu d'être coupé. Ce serait formidable si la méthode de "taille exacte de la chaîne", peut-être celle que j'ai citée plus haut, était dans MQL pour être utilisée. :)
C'est ainsi que j'ai compris l'utilité du "détourage exact". Eh bien, à part un sentiment de satisfaction et de fierté légitime d'un problème résolu :).
 
Il est plus facile d'arrondir
 
abolk:

c'est le nombre maximum auquel la normalisation a lieu :

Si vous prenez un 9 de plus, ça se normalise à 0,02.

Mais ma fonction fait le travail :

Normalize ("0.01999999999999999999999999999999", 6)

Il sort 0.019999. Ensuite, vous pouvez convertir le nombre dans le bon type et faire des calculs avec.

Si vous passez un nombre sans guillemets dans la fonction, le résultat sera 0,02.

 
WePlexus:

Il existe plusieurs façons de résoudre votre problème, chacune ayant ses avantages et ses inconvénients, en termes de précision et de rapidité d'obtention du résultat.

Travailler avec des nombres flottants a ses propres particularités -- vous devez les comprendre -- et pour comprendre ces particularités + pour votre problème -- vous devez chercher une solution.