Je voudrais savoir si un nombre réel est une multitude de l'autre. J'utilise BC-Math parce que le code fait partie d'un système plus grand faisant des calculs de prix et l'utilisation de flottants donne de mauvais résultats sur plusieurs calculs en raison du comportement des calculs en virgule flottante.Obtenir le modulo de deux nombres réels avec BCMath
BC-Math a bcmod()
pour obtenir le module d'un nombre de précision arbitraire. Cependant, avant PHP 7.2, cette fonction ne fonctionne pas avec les chaînes numériques non entières. Par exemple:
echo bcmod('10', '9.2'); // 1, because '9.2' is truncated to '9'
Conversion des dossards à flotteurs et à l'aide fmod()
est pas une option depuis fmod function returning wrong result
Je ne pouvais trouver aucune solution à ce problème, mais je ne peux pas l'image qu'il n'y a pas de solution .
EDIT:
lecteur Bonjour à l'avenir qui rencontre le même problème! Basé sur la réponse de @ chiliNUT j'ai créé un pull-request pour la bibliothèque bcmath-extended.
I love votre approche! Votre calcul a cependant une erreur. '' mod (a, b) = a - b * étage (a/b) '' au lieu de '' mod (a, b) = a/b - b * étage (a/b) ''. Voulez-vous corriger votre réponse afin que je puisse accepter? – Xatoo