Je fais actuellement de la géométrie 2D en C, la plupart du temps des lignes se croisant. Ces lignes ont toutes sortes de pentes: de 0,001 à 1000 (exemples, je ne sais même pas). J'utilisais des flottants jusqu'à maintenant et je n'avais pas à m'inquiéter de savoir si la valeur était très petite (et alors le point flottant stockerait 0,0011 comme 1e-3 sans arrondi) ou très haut (et alors 1001 serait stocké comme 1e3), avec dans les deux cas peu de perte de précision, le cas échéant.C floats: comment les contourner pour la géométrie 2D (lignes)
Mais maintenant je veux essayer sans flottants, avec des entiers. Comment maintenir la précision dans mes calculs? Je pourrais avoir un drapeau me disant si la pente sera grande ou petite et ensuite considérer un dixième de grandes pentes et dix fois de petites pentes pour que l'arrondi ne soit pas un problème pour les petites pentes et il n'y a pas de débordement dans le cas de grandes pentes . Mais cela ressemble à un mal de tête. Fondamentalement, je dois encore être capable de différencier entre une pente de 0,2 et 0,4 et aussi sur le côté de débordement des choses une pente de 1000 et 2000 (en supposant que ints débordent à 1000 - moins d'un problème ici).
D'autres idées?
En plus de stocker à la fois la montée et la course? –
Utilisez un «double» et vivre avec l'imprécision? Pourquoi auriez-vous besoin de plus de 15 chiffres significatifs décimaux? Cette quantité de précision est suffisante pour mesurer la distance d'ici à Pluton en centimètres. – Bathsheba
Vous aurez toujours des imprécisions en faisant de la géométrie computationnelle, parce que vous aurez toujours des nombres irrationnels. –