서비스 중인 게임의 브라질 유저가 게임이 이상하다고 리포트가 와서
이게 대체 무슨 난리인가 싶어서 안드로이드 에뮬레이터를 포르투갈어로 바꿔서 테스트 해본 결과
조사를 거친 결과 CSV에서 float를 파싱할 때 .이 씹혀서 0.15가 15가 되는 등 문제가 발생하고 있었다.
한국어는 1000.45를 표기 할 때 표기법이 1,000.45 이지만
포르투갈어는 1.000,45 였던 것.
미친.
그래서 float를 파싱할 때에는
float.Parse("1000.45", CultureInfo.InvariantCulture);
float.Parse("1000.45", new CultureInfo("kr-KR"));
float.TryParse("1000.45", System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out float PARSEDFLOAT);
등 CultureInfo 매개변수 설정을 해줘야한다.
다행히 선리스시티는 CSV에 float를 안 씀.
내 생각에 기기 포르투갈어로 설정한 다음
인디인디한 게임들 들어가보면 에러나서 게임이 안 되거나 핵 안 써도 수치가 망가지거나 하는 게임 꽤 있을 듯
아니면 내가 너무 근본 없이 맨땅에 헤딩으로 코딩을 익혀서, 나만 이런 기본 상식이 없는 걸지도.
결론
CSV 파싱 같은 거 할 때는 float.parse에 주의 하자.