
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Oui, mais si :
alors c'est bon.
A100:
Je ne comprends pas. Quel est le problème ?
Il reste à voir si cela sera OK pour tout nombre x
Bien sûr, ça ne sera pas le cas...
Après tout, si ça arrive :
alors, les questions ne sont ni pour moi ni pour cette idée.
Quel est le problème ?
voir mon message précédent
alors, les questions ne sont ni pour moi, ni pour cette idée.
Je pense que tous ces défauts ci-dessus dépassent le cadre de l'utilisation pratique de cette solution pour accélérer l'arrondi des entiers positifs, car peu de gens ont besoin d'une précision à 16 chiffres. Et ces bogues proviennent de toutes sortes de débordements aux niveaux des points du compilateur lui-même.
Floor(), ceil(), round() sont là pour ça - donc il n'y a pas de questions.
Je ne t'interdis pas de les utiliser. Vous êtes les bienvenus pour les utiliser. Je les utiliserai moi-même. Mais si je crée un algorithme où la vitesse est importante, j'utiliserai cette variante d'arrondi en tenant compte de toutes les nuances de cette méthode. Je pense qu'il serait utile pour les autres programmeurs de connaître l'existence de cette alternative. La discussion est exactement ce que nous devons savoir sur les nuances de cette méthode d'arrondi. Merci beaucoup à tous pour cela. N'ai-je pas raison ?
DBL_MIN etDBL_EPSILON ne fonctionnent pas - trop petits. Il est peut-être judicieux de laisser 0,999999999999999999 (16 neuf - le nombre maximum de chiffres après la virgule dans le double).
Ainsi, DBL_EPSILON a 16 décimales :2,2204460492503131e-016.
Dans votre cas, vous en obtenez effectivement un, car la différence n'est que de 1e-16, soit 2 fois moins qu'epsilon.
Donc DBL_EPSILON a 16 décimales :2.2204460492503131e-016
Et dans votre cas, vous en obtenez effectivement un, puisque la différence n'est que de 1e-16, soit 2 fois moins qu'epsilon.
Oui, j'ai compris, mais ça ne marche pas. Il s'avère que cela ne fonctionne pas non plus avec 16 neuf (étrange, cela semblait fonctionner avant). Cela ne fonctionne qu'avec 15 neuf.