0

double値を正確に小数点以下2桁にフォーマットしようとしていますが、うまく機能しているようです。ここに私が試しているコードがあります

final NumberFormat df = DecimalFormat.getInstance();
df.setMinimumFractionDigits(2);
df.setMaximumFractionDigits(2);
df.setRoundingMode(RoundingMode.DOWN);
df.format(value)

今まですべてが機能していましたが、他の計算に使用されているため、二重値を返す必要があり、試しました

Double.parseDouble(df.format(value))

のような大きな小数で

BigDecimal price = new BigDecimal(df.format(number));

しかし、期待どおり18.50に変換されていないように機能していません18.5

これは計算の問題ではありませんが、UI に金額を表示する必要があり、小数点以下 2 桁まで正確に表示する必要があります。

Javaクラスで処理できるものはありますか、またはJSTLを使用してJSPで注意する必要があります

4

1 に答える 1

2

このBigDecimalために作られたものです!

BigDecimal number = new BigDecimal(123.456);
// set 2 fraction digits
// Note that setScale() does not change the original, 
// but returns a new BigDecimal.
number = number.setScale(2, RoundingMode.DOWN);
// get string representation
String text = number.toPlainString();
// get double value
double dbl = number.doubleValue();

BigDecimal可能であれば、他の計算にも使用してください。

于 2013-04-10T07:35:23.883 に答える