Javaでのこの単純な「二重」計算の何が問題になっていますか?
一部の 10 進数は float / double バイナリ形式で適切に表現できないことはわかっていますが、変数 d3 を使用すると、java は 2.64 を問題なく格納および表示できます。
double d1 = 4.64;
double d2 = 2.0;
double d3 = 2.64;
double d4 = d1 - d2;
System.out.println("d1 : " + d1);
System.out.println("d2 : " + d2);
System.out.println("d3 : " + d3);
System.out.println("d4 : " + d4);
System.out.println("d1 - d2 : " + (d1 - d2));
答え、
d1 : 4.64
d2 : 2.0
d3 : 2.64
d4 : 2.6399999999999997
d1 - d2 : 2.6399999999999997