Sto per sviluppare un calcolatore scientifico. La mia domanda è: Come posso distinguere zero risultato da numeri molto piccoli usando il numero float?Come distinguere lo zero da un numero molto piccolo in forma fluttuante
Ad esempio, per 0.3 - 0.2 - 0.1, il risultato è qualcosa come 1E-19, che non è puro zero (problema di precisione, ovviamente). Voglio stampare il risultato (0.0). Quindi uso EPSILON per fare il confronto con zero.
Il problema è, per il calcolo: 3E-19 - 2E-19 il risultato dovrebbe essere 1E-19. Dovrei stampare il risultato esatto (anche se piccolo) 1E-19. Ma se utilizzo ancora il confronto EPSILON, il risultato è forzato a zero.
Quindi, ancora una volta, la mia domanda è: come posso fare il controllo per numeri zero e molto piccoli?
L'utilizzo dell'aritmetica a virgola mobile è un requisito rigoroso nel progetto o sarebbe disposto a considerare implementazioni aritmetiche alternative? – ApproachingDarknessFish
Prenderò in considerazione la manipolazione delle stringhe o l'utilizzo di una libreria come GMP. – Chirality