2009-12-26 4 views
0

SQLite3에 숫자 값을 올바르게 저장하는 방법. 나는 숫자 값을 저장하기 위해 실수 형을 사용했다. 예를 들면 : 233333.00을 저장할 때 좋습니다. 하지만 23333333.00을 저장하면 23333300.00이됩니다. 2.3333333E7로 저장되고 2.33333e + 07로 검색되는 이유는 무엇입니까? 이것을 극복 할 수있는 방법이 있습니까?Sqlite3에서 숫자 값 저장 및 다시 검색

답변

2

SQLite에서 사용되는 실제 유형은 8 바이트 IEEE 부동 소수점 숫자로 저장되며 모든 값을 정확하게 저장할 수 없습니다. 정확한 값을 원하면 integer 문자열을 사용하십시오.

+0

감사합니다. 어떤 유형의 데이터 필드가 REAL 유형을 사용하는 것이 가장 좋을까요? – ychian

+0

실제 세계에는 * 실제 * 유형이 없습니다. 돈을 저축해야한다면 정수 필드 (센트 단위)를 사용할 수 있습니다. 임의의 정밀도로 정확한 문자열을 필요로한다면 문자열을 사용할 수 있습니다. 약간의 정밀도를 잃지 않고 살아갈 수 있다면 진짜를 사용할 수 있습니다. –

0

프로그램의 변수가 단일 정밀도를 가지므로 이중성이 필요하므로 정밀도가 떨어집니다.

부동 소수점은 실제로 가수에 맞는 정수 값에 대해 완벽하게 정확합니다.

24 비트의 싱글 샷과 53 개의 더블 샷을 얻을 수 있습니다.

이것은 sqlite 문제가 아닙니다.