사용자로부터 한글로 국내 주소 입력을 받아서 2차원 지도 위에 마커를 찍고 싶다.
나는 다음의 순서로 문제를 해결했다.
{"x": "126.9099782", "y": "37.4922691"}
과 같이 문자열로 표현된 좌표 값을 숫자로 변환한다.<Marker>
컴포넌트의 coordinate
에 변환된 좌표 값을 입력한다.------------------------------------------------------------
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:packageDebug'.
> A failure occurred while executing com.android.build.gradle.tasks.PackageAndroidArtifact$IncrementalSplitterRunnable
> java.lang.OutOfMemoryError (no error message)
------------------------------------------------------------
android/gradle.properties
아래 코드 추가
org.gradle.jvmargs=-Xmx2048m
이후 gradle 캐시 파일 제거
cd android && ./gradlew clean
만약 parseFloat()
대신 parseInt()
로 좌표를 변환하면 어떻게 될까?
서울 영등포구를 가리켜야 하는 마커가 서해 바닷가 어딘가를 가리키게 된다.
float랑 int를 헷갈릴 일은 없겠지만.. Datetime 객체의 타임존을 다룰 때도 그렇고, 사소한 실수로 데이터에 큰 오염을 일으킬 위험이 있다.
자료형의 표현 가능한 범위(소수점 아래 몇 자리까지 가능한지, 최댓값, 최솟값은 어디까지 가능한지)를 고려하며 신중히 형변환을 하자!