javaでfloatとdoubleの値を切り捨てたい。
以下は私の要件です: 1. 12.49688f がある場合は、丸めずに 12.49 として出力する必要があります。 12.0 の場合、12 のみとして印刷する必要があります。
条件 3 は常に念頭に置いておく必要があります。切り捨てロジックと並行する必要があります。
javaでfloatとdoubleの値を切り捨てたい。
以下は私の要件です: 1. 12.49688f がある場合は、丸めずに 12.49 として出力する必要があります。 12.0 の場合、12 のみとして印刷する必要があります。
条件 3 は常に念頭に置いておく必要があります。切り捨てロジックと並行する必要があります。
これを試してみてください-
DecimalFormat df = new DecimalFormat("##.##");
df.setRoundingMode(RoundingMode.DOWN);
System.out.println(df.format(12.49688f));
System.out.println(df.format(12.456));
System.out.println(df.format(12.0));
ここでは、書式設定に 10 進フォーマッタを使用しています。roundmode は DOWN に設定されているため、小数点以下は自動四捨五入されません。
期待される結果は次のとおりです。
12.49
12.45
12
double d = <some-value>;
System.out.println(String.format("%.2f", d - 0.005);
で見てくださいDecimalFormat()
:
DecimalFormat df = new DecimalFormat("#.##");
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setDecimalSeparator(',');
df.setDecimalFormatSymbols(dfs);
小切手java.math.BigDecimal.round(MathContext).
DecimalFormatを使用してみて、 RoundingModeを必要なものに合わせて設定してください。