IEEE 754 표준에서는 float (32 비트)가 가형에 23 비트를 사용하며 모든 실제의 모든 자릿수를 약 107까지 저장할 수 있다고합니다. cos()
또는 sin()
과 같은 삼각 함수의 경우 최하위 비트가 중요합니다. 따라서 인코딩 중에 가수의 일부가 손실되기 때문에 float 변수의 sin() 및 cos() 결과가 잘못된 것으로 예상 할 수 있습니다.삼각 함수의 부동 소수점 및 배정도
for (int i = 0; i <= 15; i++) {
System.out.println("for 10^" + i);
System.out.println(Math.sin((float) Math.pow(10, i)));
System.out.println(Math.sin(Math.pow(10, i)));
}
이 코드는 플로트 변수의 sin()
및 cos()
내가 이해할 수없는 행동 ... 인 10 10까지 정확한 유지 보여줍니다 어떻게 수있는 cos()
및 sin()
과정 정확한 값으로 매개 변수 자체에는 정밀도가 부족합니까?