einen Float-Wert von 37.35
Versorgung erhalte ich eine Reihe von 37.3
Odd Ergebnis aus DecimalFormat Rounding Halbhoch
Hier ist mein Code.
DecimalFormat format = new DecimalFormat(".0");
format.setRoundingMode(RoundingMode.HALF_UP);
return format.format(37.35f);
Ich würde erwarten, eine Reihe von 37.4
zu erhalten. Was mache ich falsch?
Ich denke, es kann aufgrund der Übergabe eines Float in aber ich habe keine Wahl hinsichtlich der Art der Variable, die ich erhalte. Auch wenn die tatsächliche Darstellung des float
37.3500221215051544
war, sollte es noch aufgerundet werden?
Der ganze Punkt der Formatierung dieses Wertes zu einer Zeichenfolge ist so, dass ich es an BigDecimal
übergeben kann und genaue Werte wie 37.4
haben.
Bitte u BigDecimal Klasse in Java verwenden müssen! Es hat eine Methode, um zu runden und das gewünschte Format zu bekommen, wie String, Double, etc. Und das Wichtigste ist, dass Sie die Genauigkeit nicht mit dieser Klasse verlieren! – Catluc