double a = 18.2;

Debug.Log(a);
Debug.Log(a.ToString("G17"));




이렇게 하면 두 로그가 다 18.2, 혹은 18.200000000000000가 나올거라고 생각했는데... 실제론 아래처럼 나옴.


28a5d12babc236a14e81d2b628f1756f195963



아마 정밀도 관련 문제라고 생각은 하는데 어떻게 해결해야 할지 도통 모르겠네...




참고로 이딴 걸 왜 쓰고 있냐면,


double로는 숫자 크기가 감당이 안되서 무한 자료형을 위해 에셋(Infinite Value)을 사용하고 있는데


해당 에셋이 double을 형 변환할 때 string을 통해 변환하고 있거든;




결과적으로 1820%라고 떠야 할 숫자가 1819%라고 뜨고 있어.


게임에 영향을 줄만한 차이는 아닌데 보기가 다소 불쾌함 ㅇㅇ.




혹시 짐작가는 해결 방법이나 검색어가 떠오르는 친구 있으면 답변 부탁해 ㅠ