개인 프로젝트를 하나 구현하다 한가지 약간의 문제가 생겨 이렇게 글 올립니다

 

다름이 아니라 JAVA 데이터 타입에 long은 64비트(8바이트) 정수 타입으로 정의되어 있는데요..

 

안드로이드에서 실제 연산에 long타입의 변수를 이용해서 값을 넣어도 32비트를 못넘기네요;;;

 

일단 수식에 넣을 상수 값이야 32비트 이상의 값을 넣을 수 없을거라 이해는 해도

 

최종 연산값을 long 타입 변수에 대입하면 결과값은 올바르게 저장될 줄 알았는데

 

그래도 출력해보면 올바른 값이 나오지 않습니다..아무래도 안드로이드상에서 32비트 범위를 못벗어나는듯 합니다

 

SQLite3 데이터베이스에서는 long 타입의 64비트 정수값을 저장할 수 있고 그 값을 제대로 불러 올 수 있는데

 

이때도 값을 출력해보면 제대로 값이 나오지 않아서 혹시나 해서 여러 자릿수로 나눠서 출력해보니 올바른 값이 나오더군요

 

그렇다면 long데이터 타입에 값이 저장은 된다는 뜻일텐데요..(DB에서 64비트 정수 값을 받아올 수 있는걸 보면)

 

코드 상에서나 어플 상에서 값이 32비트 한도를 넘어가면 제대로 된 값이 저장도 안되고 출력도 안되니 답답하네요

 

안드로이드 상에서의 데이터 타입 long의 정체는 대체 뭔가요 ㅜㅜ

 

답변 부탁드립니다