인프런 커뮤니티 질문&답변

dddk11님의 프로필 이미지
dddk11

작성한 질문수

[중급편] 코인 가격 모니터링 앱 제작 (Android Kotlin)

섹션 4 다 완성하고 실행시켜보니 NumberFormatEx이 뜨네요

작성

·

168

0

FATAL EXCEPTION: DefaultDispatcher-worker-1

Process: com.dk.coinpriceapp, PID: 12025

java.lang.NumberFormatException: For input string: "2024-04-27 11:22:36"

at jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)

at jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110)

at java.lang.Double.parseDouble(Double.java:660)

at com.dk.coinpriceapp.view.main.MainViewModel$getAllSelectedCoinData$1.invokeSuspend(MainViewModel.kt:64)

at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)

at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)

at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)

at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)

at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)

at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)

at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)

at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@dc79e9b, Dispatchers.IO]

 

에러 내용은 이렇구요 써저있는데로 잘 적은거 같은데 어느 부분에서 실수가 있는지 잘 모르겠습니다.

 

이건 소스코드 입니다.

https://github.com/dong-hei/Android_CoinMonitering_App

답변 2

0

개복치개발자님의 프로필 이미지
개복치개발자
지식공유자

image안녕하세요

프로젝트를 실행해보니 잘 되는거같은데

어떤 포인트에서 에러가 나는걸까요?

dddk11님의 프로필 이미지
dddk11
질문자

코인목록에서 관심있는 코인은 잘 불러와 지는데 fragment_price_change 프레그먼트로 넘어갈때 NumberFormatException이 발생합니다

개복치개발자님의 프로필 이미지
개복치개발자
지식공유자

image실제 price부분에 위 이미지처럼 가격이 들어가야 하는데
dddk11님이 만드신 데이터는 아래와 같습니다.
insert하실 때 잘못된 값을 넣으신 것 같은데 이 부분 확인해보시면 좋을 것 같습니다.
image

0

안녕하세요, 인프런 AI 인턴입니다.

에러 메시지에 따르면 NumberFormatException이 발생한 원인은 “2024-04-27 11:22:36”라는 문자열을 Double 타입으로 변환하려고 시도했기 때문입니다. 자바에 내장된 Double.parseDouble 메소드는 숫자 형식의 문자열을 실수로 변환할 수 있지만, 날짜와 시간을 나타내는 형식의 문자열을 변환하려고 하면 NumberFormatException을 발생시킵니다.

java.lang.NumberFormatException: For input string: "2024-04-27 11:22:36" 에러는 MainViewModel.kt 파일의 64번째 줄에서 발생했다고 나와 있습니다. 따라서 해당 부분에서 문자열을 파싱하거나 변환하는 로직을 확인해보시기 바랍니다.

이 문제를 해결하기 위해서는 날짜와 시간을 나타내는 문자열을 Double이 아니라 적절한 날짜/시간 타입으로 변환하는 작업이 필요합니다. Kotlin에서는 LocalDateTime, DateFormat, SimpleDateFormat 등의 클래스를 사용하여 문자열을 날짜 형식으로 파싱할 수 있습니다. 예를 들어, SimpleDateFormat을 사용하여 문자열을 Date 객체로 변환하는 것이 하나의 방법이 될 수 있습니다.

소스 코드에 대한 구체적인 수정 제안은 제공된 링크의 소스 코드를 직접 확인할 수 없기 때문에 드리기 어렵지만, 일반적인 해결 방향을 제시드린 것처럼 날짜 문자열을 적절히 처리하는 로직으로 변경해야 할 것으로 보입니다.

추가적으로 Kotlin과 관련된 더 많은 정보나 도움이 필요하시면 Kotlin 공식 문서Stack Overflow를 참고하시거나 Kotlin Slack 커뮤니티에서 질문하실 수 있습니다.

또한, Spring Boot와 Kotlin을 함께 사용하는 방법에 대한 자세한 정보는 Spring Boot Reference Documentation을 참고하시면 도움이 될 것입니다.

dddk11님의 프로필 이미지
dddk11

작성한 질문수

질문하기