지난번에 질문을 했는데 답변이 없어서 다시 질문 드립니다.
MySQL에서 작업을 하다가 황당한 버그를 발견했습니다.
CREATE TABLE TEST_TABLE (
test double DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DOUBLE 형으로 컬럼을 하나 만들고 insert
INSERT INTO TEST_TABLE (test) VALUES (0.0010200210510505903);
그리고, 조회를 하면 값이 변형이 되어 나옵니다.
SELECT * FROM testTable
0.000102002105105059
소수점 뒤에 0이 하나 더 붙어서 나오는 것이다.
그래서 테스트를 더 해보았습니다.
입력 0.10200210510505903
결과 0.102002105105059 <= 결과같음
입력 0.010200210510505903
결과 0.0102002105105059 <= 결과같음
입력 0.0010200210510505903
결과 0.000102002105105059 <= 결과틀림
입력 0.00010200210510505903
결과 1.02002105105059E-5 <= 결과틀림
입력 0.000010200210510505903
결과 1.02002105105059E-5 <= 결과틀림
입력 0.0000010200210510505903
결과 1.02002105105059E-6 <= 결과틀림
위와 같이 테스트를 해 보니 소수점 뒤에 0이 2개 이상일 때 값이 변형되어 조회 되었습니다.
이유가 궁굼합니다.
아시는 분 좀 알려주세요.
|