Rund die Hälfte noch für das doppelte
Muss ich Runde auf die nächste 0,5 wenn möglich.
10.4999 = 10.5
Hier ist quick code:
import java.text.DecimalFormat;
import java.math.RoundingMode;
public class DecimalFormat
{
public static void main(String[] args)
{
DecimalFormat dFormat = new DecimalFormat("#.0");
dFormat.setRoundingMode(RoundingMode.HALF_EVEN);
final double test = 10.4999;
System.out.println("Format: " + dFormat.format(test));
}
}
Diese funktioniert nicht, da 6.10000... Runden 6.1 usw...es brauchen, um rund 6,0
Danke für jedes feedback.
- also, hast du etwas anderes ausprobieren? Komm schon, kann nicht so schwer sein..
Round.HALF_EVEN
hat nichts zu tun mit Ihrer Anforderung.- 2.6000000 ist der gleiche Wert wie 2,6 keine Rundung stattgefunden hat
- sorry editiert, schläfrig.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anstatt zu versuchen, Rundung auf die nächsten 0,5 verdoppeln, Runden auf den nächsten int, dann durch zwei teilen.
Diese Weise 2.49 wird 4.98, Runden auf 5, wird zu 2.5.
2.24 wird 4.48, Runden auf 4, wird der 2.
(int)d + 0.5;
funktionieren.Math.rint
ist die Art und Weise zu tun HALF_EVEN Rundung fürdouble
.Einer Allgemeinen Lösung zu @RobWatt Antwort, falls Sie jemals wollen, um die Runde zu etwas anderem:
r
bedeutet das wechselseitige, was Sie versuchen zu Runde zu. Die Berechnung wäre dannMath.round(v * r) / r;
. Dabei würde es leichter machen, zu Runden auf den nächsten Dritten, oder den anderen Fraktionen, die eine schmutzige dezimale Darstellung.roundTo(9788699.4324, 1000) // 9789000.0
)Format: 2.5
. Was ist Los mit ihm?