このdouble変数doubletest=58.15に対して以下のjavaprintコマンドを実行します。System.out.println(test);を実行すると およびSystem.out.println(new Double(test).toString()); 58.15として印刷されます。
System.out.println(new BigDecimal(test))を実行すると、以下の値が得られます58.14999999999999857891452847979962825775146484375
「テスト」の二重変数値が58.1499999として内部に格納されていることを理解できます。しかし、以下の2つのSystem.out.printlnを実行すると、58.1499999ではなく58.15として出力が取得されます。
System.out.println(test);
System.out.println(new Double(test).toString());
上記の2つについては、出力を58.15として出力します。
上記のSystem.out.printlnステートメントは、値58.1499999を丸めて、58.15として出力していますか?