2010-10-13 6 views
0

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?

+1

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 ;-) –

Répondre

0

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 ...

+0

merci pour la réponse – collegian

Questions connexes