아하 로고
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
과감한귀뚜라미133
과감한귀뚜라미13321.06.10

mysql float 출력문제

mysql입니다. table이라는 테이블에 ex_rate라는 컬럼이 float로 되어 있고 데이터 값이 20.68로 하나 들어가 있습니다. 그런데

select ex_rate FROM table;

라는 sql문을 쓰면 20.68로 제대로 출력이 되는데

SELECT min(ex_rate) FROM table;

20.6800003051758

로 출력이 됩니다. 이게 왜 이렇게 출력되는 것일까요?

55글자 더 채워주세요.
답변의 개수1개의 답변이 있어요!
  • 탈퇴한 사용자
    탈퇴한 사용자21.06.10

    안녕하세요.

    MySQL에서 FLOAT, DOUBLE 타입은 대략적인 숫자 데이터를 저장하는데 사용됩니다. 자세한 사항은 아래 공식 문서에 나와있습니다.
    가장 좋은 방법은 FLOAT, DOUBLE 타입 대신에 DECIMAL, NUMERIC 타입을 사용하는 것입니다.
    DECIMAL(10, 6) 으로 지정 시 전체 10자리 중 정수는 6자리, 소수는 나머지인 4자리를 사용합니다.
    FLOAT를 꼭 사용해야 한다면 테이블 생성 시 "EX_RATE FLOAT(10, 6)" 처럼 사용하면 되지만 비표준이며, MySQL 버전이 올라감에 따라 제거될 예정입니다.

    MySQL FLOAT 관련 문서 : https://dev.mysql.com/doc/refman/8.0/en/floating-point-types.html

    MySQL DECIMAL 관련 문서 : https://dev.mysql.com/doc/refman/8.0/en/fixed-point-types.html