これらのテストの動作が異なるのはなぜですか?
public void testRoundFloat() {
final NumberFormat format = NumberFormat.getNumberInstance();
format.setMaximumFractionDigits(2);
format.setMinimumFractionDigits(2);
format.setRoundingMode(RoundingMode.HALF_UP);
assertEquals("102,345.56", format.format(102345.556f));
}
public void testRoundDouble() {
final NumberFormat format = NumberFormat.getNumberInstance();
format.setMaximumFractionDigits(2);
format.setMinimumFractionDigits(2);
format.setRoundingMode(RoundingMode.HALF_UP);
assertEquals("102,345.56", format.format(102345.556d));
}
float を丸める最初のテストはフォーマットの結果が xxx.55 であるため失敗し、double を丸める 2 番目のテストは成功します。Android 4.2.2 (レベル 17) でテストを実行しています
ありがとうマーカス