Se metti un valore "letterale" decimale è già double, in pratica 12.34 è lo stesso di 12.34d (mentre invece 12.34f lo rende float).Originariamente inviato da Druzya
so che per evitare la perdita di precisione tra int e long si utilizza la L. c'e' un meccanismo simile per i double?
Ma non è quello il problema! Il problema è dovuto a come sono rappresentati internamente i numeri in virgola mobile.
Ecco un altro esempio in cui il risultato non è quello voluto:
Ebbene: stampa "diverso".codice:public class Prova { public static void main (String[] args) { double a = 2.54; double b = 2.5; double dif = a - b; if (dif == 0.04) System.out.println ("uguale"); else System.out.println ("diverso"); } }

Rispondi quotando