//******************************************************************** // Precisione.java // // mostra l'arrotondamento nei tipi a virgola mobile //******************************************************************** public class Precisione { //----------------------------------------------------------------- // assegna il valore a un tipo in virgola mobile, // ne sottrae un numero rispetto al valore iniziale, // si ricalcola per differenza tra il dato inizale // e quello manipolato la quantità sottratta e si osserva // l'approssimazione. //----------------------------------------------------------------- public static void main (String[] args) { final double EPSILON = 1E-14; double numeroIniziale = 3E14, numeroModificato; double numeroPiccolo = 0.031; System.out.println ("numero iniziale: " + numeroIniziale); System.out.println ("epsilon: " + EPSILON); numeroModificato = numeroIniziale - EPSILON; System.out.println ("numero modificato: " + numeroModificato); System.out.println ("differenza: " + (numeroIniziale - numeroModificato)); if (Math.abs (numeroIniziale - numeroModificato) < EPSILON) System.out.println ("Praticamente uguali."); System.out.println ("numero iniziale: " + numeroIniziale); System.out.println ("numero piccolo: " + numeroPiccolo); numeroModificato = numeroIniziale - numeroPiccolo; System.out.println ("numero modificato: " + numeroModificato); if (Math.abs (numeroIniziale - numeroModificato) < EPSILON) System.out.println ("Praticamente uguali."); else System.out.println ("differenza: " + (numeroIniziale - numeroModificato)); } }