몇 가지 UI 버튼을 사용하여 3D 모델의 변환에 영향을 미치려고합니다. 위치를 0.1 또는 -0.1 이동하십시오.float를 사용해야 할 때 부동 소수점 오류를 실제로 피하는 방법은 무엇입니까?
내 모델 위치가 3 차원 플로트이므로 값 중 하나에 0.1f를 단순히 추가하면 명백한 반올림 오류가 발생합니다. 정밀도를 유지하기 위해 BigDecimal과 같은 것을 사용할 수는 있지만, 여전히 부동 소수점에서 다시 부동 소수점으로 변환해야하며 항상 UI가 엉망인 것처럼 보이게 만드는 바보 같은 숫자가됩니다.
표시된 값은 꽤 좋지만 반올림 오류는 더 많은 편집 작업으로 만 악화되고 읽을 수있는 저장 파일을 만듭니다.
그래서 어떻게 float을 사용해야 할 때 이러한 오류를 실제로 피할 수 있습니까?
.1f를 몇 번 더 더하고 빼면 큰 오류가 발생하지 않습니다. 가장 눈에 띄는 것은 원하는 결과가 네 개이지만 매우 약간 적은 것이 생성되어 정수로 변환하는 동안 세 개로 절단되는 경우처럼 한 개씩 변경됩니다. 이는 변환 전에 반올림하여 해결할 수 있습니다. 다른 오류가 발생하는 경우 다른 오류가있을 수 있습니다. 자신이 가지고있는 문제를 보여주는 예제 데이터와 코드를 보여주십시오. –
가장 쉬운 것 : 0.125만큼 증가/감소. –