Je crée une calculatrice RPN pour un projet d'école. J'ai des problèmes avec l'opérateur de module. Puisque nous utilisons le type de données double, le module ne fonctionnera pas sur les nombres à virgule flottante. Par exemple, 0.5% 0.3 devrait renvoyer 0.2 mais j'obtiens une division par zéro exception.Comment utiliser le module pour float/double?
L'instruction indique d'utiliser fmod(). J'ai cherché partout fmod(), y compris javadocs mais je ne le trouve pas. Je commence à penser que c'est une méthode que je vais devoir créer?
modifier: hmm, strange. Je viens de brancher à nouveau ces chiffres et ça semble fonctionner correctement ... mais juste au cas où. Ai-je besoin de faire attention en utilisant l'opérateur mod en Java lorsque j'utilise des types flottants? Je sais que quelque chose comme ça ne peut pas être fait en C++ (je pense).
mais '1.0% 0.1' renvoie ...' 0.09999999999999995', comme le résultat d'une erreur d'arrondi. Une idée de comment corriger cela (vraisemblablement avec des valeurs epsilon?) – Groostav
erreurs d'arrondi arrivera toujours dans les calculs à virgule flottante. Soit prendre la valeur telle qu'elle est donnée, soit l'arrondir à la valeur nécessaire la plus proche. – Anarchofascist
'String.format ("% .8f ", 1.0% 0.1)' renvoie '0.10000000' – Anarchofascist