BigDecimal Subtraktion

Möchte ich subtrahieren 2 double Werte, und ich habe versucht den folgenden code.

double val1 = 2.0;
double val2 = 1.10;

System.out.println(val1 - val2);

und ich habe die Ausgabe als,

0.8999999999999999

Für die erste Ausgabe als 0.9 ich habe versucht, mit BigDecimal Sie wie folgt vor,

BigDecimal val1BD = new BigDecimal(val1);
BigDecimal val2BD = new BigDecimal(val2);

System.out.println(val1BD.subtract(val2BD));

Und ich habe die Ausgabe als,

0.899999999999999911182158029987476766109466552734375

Dann habe ich versucht mit BigDecimal.valueOf()

val1BD = BigDecimal.valueOf(val1);
val2BD = BigDecimal.valueOf(val2);

System.out.println(val1BD.subtract(val2BD));

Und schließlich habe ich die Ausgabe als 0.9.

Meine Frage ist was ist der Unterschied zwischen Fall 2 & Fall 3?

In Fall 2 warum habe ich die Ausgabe so?

InformationsquelleAutor Rakesh KR | 2015-09-13
Schreibe einen Kommentar