Cela peut être une question stupide à poser: Lors de l'utilisation de float il ya quelques arrondi pour les décimales, comment vérifier les erreurs d'arrondi de préférence en Java ou C? Toutes les suggestions seront grandement appréciées.Comment vérifier si des erreurs ont été corrigées?
Répondre
Eh bien, vous pourriez faire l'opération dans quelque chose sans arrondi, et comparer les résultats. Par exemple, en Java, vous pouvez utiliser Big Decimal pour faire une opération après l'avoir fait avec float ... et voir si vous vous retrouvez avec le même nombre.
Une meilleure question, pourquoi voulez-vous faire cela? Float fera souvent des tours bizarres, vous ne voulez pas l'utiliser partout où vous avez besoin de précision (c'est-à-dire avec une transaction bancaire). Dans ce cas, utilisez Big Decimal. Mais si vous voulez juste représenter un point 3D sur l'écran, 1,5 arrondi à 1.499997 ne changera rien ...
merci pour la réponse – collegian
- 1. Comment vérifier si session_start a été entré?
- 2. jquery voir si des cases ont été cochées
- 3. Détecter si des images ont été chargées dans un UIWebView?
- 4. PHP/MySql - DateTime détectant si des valeurs ont été assignées?
- 5. Valgrind erreurs même si tous les blocs tas ont été libérés
- 6. Vérifiez si les procédures stockées ont des erreurs de syntaxe
- 7. PHP Détecter si des variables d'URL ont été définies
- 8. vérifier si l'élément jQuery ont attribut spécifique
- 9. jQuery UI, détecter si les options ont été saisies?
- 10. Comment vérifier si l'événement UPLOAD_COMPLETE_DATA n'a pas été distribué?
- 11. JSTL: Vérifier si Envoyer a été cliqué
- 12. Comment vérifier si les permutations ont la même parité?
- 13. Vérifiez si les limites YQL ont été atteintes?
- 14. Comment vérifier si les paramètres régionaux du téléphone ont changé?
- 15. Comment vérifier si deux enregistrements ont une relation auto-référencée?
- 16. JS Ajax appel: besoin de dormir, vérifier si plus de caractères ont été saisis puis exécuter
- 17. Comment vérifier si deux chaînes ont la même longueur?
- 18. Comment vérifier si l'application iPhone a été installée auparavant?
- 19. Comment puis-je vérifier que des données ont été insérées avec succès?
- 20. Dans OpenOffice, comment vérifier si mon XComponentContext a été fermé?
- 21. Comment puis-je vérifier si une structure a été initialisée?
- 22. Comment vérifier si une variable a été initialisée?
- 23. Comment vérifier si le WaitHandle a été défini?
- 24. Comment vérifier si une touche a été enfoncée sous Linux?
- 25. Comment vérifier si une image a été préchargée correctement?
- 26. Actualiser l'activité si les préférences ont été modifiées
- 27. PHP détecter si toutes les variables d'URL ont été définies
- 28. Déterminez si des caractères non numériques ont été collés dans UITextField
- 29. Vérifier si le fichier javascript a été chargé
- 30. Aucune erreur de compilation lorsque la référence a été ajoutée, mais des erreurs ont été détectées lors de la génération
Il y a un truc où vous changez le mode d'arrondi, répétez le calcul, et voyez si le résultat est le même chose (si ce n'est pas la même chose, la différence vous donne une idée de la stabilité numérique de votre algorithme). Si supporté, vous faites cela en C avec 'fesetround' de' '. Mais la réponse à "a arrondi s'est produite?" est presque toujours "oui", donc vous ne perdez pas beaucoup de généralité si vous supposez que c'est le cas, et passez à la question de savoir combien cela a affecté le résultat ;-) –