Sollte ich MathContext.DECIMAL32
oder MathContext.DECIMAL64
verwenden? Ich habe mir die documentation angeschaut, aber ich konnte nicht wirklich verstehen, wann ich beides benutzen sollte.MathContext.DECIMAL32 vs MathContext.DECIMAL64, welche zu verwenden, und warum?
Ich benutze BigDecimal, um einen Prozentsatz darzustellen, den ich auf einen Geldbetrag anwenden möchte. Etwas wie folgt aus:
...
final MathContext mc = MathContext.DECIMAL32;
BigDecimal amount = getAmount(args);
float percent = getPercent().floatValue();
BigDecimal percentAsBd = new BigDecimal(percent/100.f, mc).setScale(4, RoundingMode.HALF_UP);
BigDecimal threshold = amount.multiply(percentAsBd);
...
Ich bin mit Oracle Java 1.8, Ubuntu 14.04, Intel Core i7 (64bit)
einen besonderen Grund Sie das Gefühl einer von ihnen verwenden sollten, anstatt eine MathContext Konstruktion das entspricht Ihren Anforderungen für z Rundung? –
@PatriciaShanahan Ich denke, ich bin besorgt über seine Kompatibilität mit Java nativen Float, die ich nehme, ist 32 Bit. – has981
Der native Java-Gleitpfad ist binärbasiert, nicht dezimal, und ist viel weniger geeignet als BigDecimal, um Prozentwerte darzustellen. Ich denke nicht, dass seine Größe relevant ist. –