-1
인쇄 문에서이 코드를 인쇄하면 출력이 올바르지 않습니다.왜 시스템에서 십진수를 뺄 때 출력이 올바르지 않다.
System.out.println(3.15 - 3);
출력은 다음과 같습니다
0.1499999999999999
내가 출력해야합니다 생각합니다.
0.15
인쇄 문에서이 코드를 인쇄하면 출력이 올바르지 않습니다.왜 시스템에서 십진수를 뺄 때 출력이 올바르지 않다.
System.out.println(3.15 - 3);
출력은 다음과 같습니다
0.1499999999999999
내가 출력해야합니다 생각합니다.
0.15
System.out.println ((float) (3.15 - 3.0))); // 대답은 0.15
System.out.println (3.15f - 3); // 대답은 0.1500001
System.out.println (3.15 - 3.0); // 대답은 0.1499999999999999
감사합니다 ♥ –
부동 소수점 연산이 정확하지 않습니다. 이것에 관한 많은 문학이 있습니다. – Brick
왜 그렇게하는 자바 !! .. 그리고 거기에 어떤 해결책이 있습니까? –
"Java"는 그렇게하지 않습니다. 수학에 대한 근본적인 진실이며 부동 소수점 표현이있는 모든 언어에서 공통적 인 실수의 유한 정밀 표현입니다. 고정 소수점과 관련된 문제는 다를 수 있습니다. 문제는 실제 숫자가 무한대이고 정확히 16 비트 만 정확하게 표현할 수있는 것입니다. "부동 소수점 산술"을 검색하십시오. – Brick