저는 Java 7 64 비트로 LibGDX 프로그램을 만들고 있습니다.자바 7 123.123456f에 123.12346이있는 이유는 무엇입니까?
매개 변수로 float을받는 함수를 junit을 사용하여 테스트 할 때 이상한 결과가 나타납니다. 나는 함수를 123.123456f
을 매개 변수로 사용하고 함수는 123.12346
을받습니다. 왜 이런 일이 생길까요?
12.123456f
을 매개 변수로 사용하면 올바른 결과를 얻습니다. 123.12345f
여전히 작동합니다.
따라서 입력을 확인하려면 System.out.println(...)
을 사용합니다.
나에게 중요하지 않지만 그 이유를 알고 싶습니다. 고마워요!
감사 안토니
[모든 컴퓨터 과학자가 부동 소수점 연산에 대해 알아야 할 사항] (http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html) –
이 " 문제 "를 일으킬 수 있습니다. 부동 소수점 유형에는 무한 정밀도가 없습니다. 수레는 24 비트의 가수를 가지고 있으며 6-7 자리의 정밀도 만 가질 수 있습니다. –