Otbmeui ha scritto:
Ma quindi per risolvere il mio problema, e quindi ottenere come risultato della sottrazione 0.36 come dovrei fare?
Nel mio caso se i risultato non è preciso il programma non funziona a dovere
La questione è più "ampia" di quanto forse stai pensando. In ambiti particolari (es. settore finanziario) se si vuole davvero precisione, NON si usano float/double ma la classe java.math.BigDecimal che serve a trattare valori decimali a precisione "arbitraria" o si usano altre tecniche (es. gestire valori decimali come "interi" con numeri di decimali fisso).
Ti faccio un altro esempio:
double n = 35.12;
System.out.println(n); // stampa 35.12
double s = 0;
for (int i = 0; i < 100000; i++) {
s = s + n;
}
System.out.println(s);
Sommando il valore 100000 volte, dovrebbe venire fuori esattamente 3512000 ma se stampi s ti esce 3512000.000007711
Se si tratta solo di "stampa", è sufficiente stampare "arrotondato" usando varie API del framework, ad esempio:
System.out.printf("%.3f", s); // stampa 3512000,000 (localizzato in italiano)