아무도 내가 잘못한 것을 알고 있습니까? 나는 부동 소수점 숫자를 얻었고, 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'보다 적은 값으로 호출하고 있습니다 (*는'0.03'으로 flooring * 될 것입니다). –
@Long'this.accountSummary.getCreditAvailable()'과'this.accountSummary.getCreditLimit()'의 값을 나누면 0.04라는 것을 보여줄 수 있습니까? – mapeters
형식을 지정하지 마십시오. 그것을 2 개의 십진수로 반올림하십시오. 너 괜찮을거야. –