2014-02-22 2 views
4

안녕 나는 그것이 저장되는 값 25.4를 삽입하려고 할 때 내가 작성하고 데이터베이스를 조작하기위한 녹색 DAO 라이브러리를 사용하고 내가안드로이드 greenDAO 보관 부동 소수점 숫자를 잘못

 Float total; 

같은 데이터베이스의 일부 필드가 모두 25.4099998474121

은 이후 내가 25.4099998474121을 얻고 결국 내 모든 계산이 잘못되어 가고 데이터베이스에서 데이터를 검색 할 때

날이

나가 도와주세요3210

감사합니다.

+0

일부 코드를 표시 할 수 있습니까? 그것은 당신이 저장 한 것으로 보인다 25.41 – Henry

답변

0

Sqlite 테이블을 생성하는 동안 부동 소수점 필드 유형을 10 진수 (15,2)로 지정하십시오. 여기서 2는 소수점의 수를 나타내며 15는 허용되는 총 자릿수를 나타냅니다.

create table testing(numberField decimal(15,2)) 
insert into testing values(9999999999999.99) 

하지만 더 많은 값을 추가하는 것은 반올림합니다, 나는 다음과 같은 코드를 시도하고 완벽하게 작동합니다. 삽입 할 필요가 귀하의 경우

insert into testing values(25.4) 

이 정확히 SQLite는 데이터베이스에 25.4로 값을 삽입합니다. 이것이 작동하지 않으면 프로그램이 여분의 값을 할당하거나 반올림합니다.

+0

동일하게 지정했는데 테이블에 19 자리를 더했다 –

+0

@SoftwareSainath 나는 대답을 업데이트하고 데이터베이스에서 검색하는 동안 Float 대신 BigDecimal에 할당하려고 시도했다. – Ajeesh

관련 문제