Qu'est-ce qui se passe lorsque vous convertissez nombres à virgule flottante à un nombre de points fixes dans java (java moi en particulier)

StackOverflow https://stackoverflow.com/questions/7309922

Question

Je veux que mon moi java programme de fonctionner aussi efficacement que possible. mon but est de faire un casting de rayon et que vous voulez connaître la meilleure façon de traverser voxels. Je l'ai entendu dire que la conversion et la comparaison des nombres à virgule flottante est très consommateur d'UC. Alors je me suis pourquoi ne pas ajouter une certaine distance à chaque rayons x et y, tronquer le reste, et utiliser ces coordonnées pour vérifier ensuite un octree pour un voxel. Au fond, est-il une meilleure façon d'aller faire quelque chose comme ça pour un programme java moi ?

Tronquer nombres à virgule flottante?

Était-ce utile?

La solution

« mathématiques à virgule flottante est lent » est la sagesse ancienne - mais il est aussi la sagesse pas à jour. Sur les CPU de bureau modernes, les calculs à virgule flottante sont rapides, et il y a peu à gagner sur des calculs à virgule fixe.

Modifier après avoir relu le titre de la question: L'approche que vous décrivez est tout à fait viable, sauf que vous devez multiplier, pas ajouter, chaque numéro. Cependant, vous devez d'abord écrire un programme de test petite performance qui vérifie si le type de calculs vous avez l'intention de le faire seront effectivement bénéficier de mathématiques à point fixe sur le matériel où vous avez l'intention d'exécuter votre programme.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top