내 코드는 다음과 같다 :이상한 행동
Input: 5.1
Double: 5.1
Integer: 509
다음
inputValue
가 5,10 출력되는 경우,
Input: 7.1
Double: 7.1
Integer: 710
:하지만
Number inputAmount = NumberFormat.getNumberInstance(Locale.FRANCE).parse("7,10");
double doubleValue = inputAmount.doubleValue();
int intValue = (int) (doubleValue * 100);
System.out.println("Input: " + inputAmount);
System.out.println("Double: " + doubleValue);
System.out.println("Integer: " + intValue);
출력하는
이것은 5,10 및 4,10에서만 발생합니다. 이중 정밀도로 인해 발생한다는 것을 알고 있지만 정확히 어떻게 계산할 수는 없습니다. 아이디어가 있으십니까? 변경
이 보이는 7이 될 수처럼 .. – Maroun
이 BigDecimal를 사용해보십시오 4처럼 5 정확히 표현할 수없는 –
예,이 문제가 발생하여 BigDecimal을 사용하고 해결했지만 처음 방법이 작동하지 않는 이유를 알고 싶었습니다. – user3139293