私がここで間違ったことを知っている人は誰ですか?私は浮動小数点数を持っている、それは0.04と言うように。フォーマット後、0.03になります。どうやら、出力結果はすでに0.01よりも低くなっています。事前にDecimalFormatが間違った結果を返します
float creditAvailableProportion = this.accountSummary != null ? (this.accountSummary.getCreditAvailable()/this.accountSummary.getCreditLimit()) : 0;
DecimalFormat decimalFormat = new DecimalFormat("#.##");
decimalFormat.setRoundingMode(RoundingMode.FLOOR);
float formattedCreditAvailableProportion = Float.parseFloat(decimalFormat.format(creditAvailableProportion));
return Math.min(1.0f, formattedCreditAvailableProportion);
ありがとう:
は、ここに私のコードです。
'System.out.println(decimalFormat.format(0.04));' prints '0.04'; '0.04'よりも小さい値で呼び出しています(これは* float *から0.03になります)。 –
@Long 'this.accountSummary.getCreditAvailable()'と 'this.accountSummary.getCreditLimit()'の値が分かれていることをあなたに見せてもらえますか? – mapeters
フォーマットしないでください。 2小数点まで丸めます。あなたは大丈夫です。 –