반응형
테이블 1 개 :
항목 (ID, 가격)
행이 1 개 있습니다.
id : 1, 가격 : 565.8
항목에서 가격 선택
은 565.8
을 제공합니다.
SELECT SUM (price) FROM items
는 제가 예상했던 565.8
대신 565.799987792969
를 제공합니다.
565.799987792969
의 출처는 어디입니까?
해결 방법
링크에서 :
mysql> select * from aaa;
+----+------------+------+
| id | month_year | cost |
+----+------------+------+
| 1 | 2002-05-01 | 0.01 |
| 2 | 2002-06-01 | 1.65 |
| 3 | 2002-07-01 | 0.01 |
| 4 | 2002-01-01 | 0.01 |
+----+------------+------+
mysql> select id, sum(cost) from aaa group by id;
+----+---------------------+
| id | sum(cost) |
+----+---------------------+
| 1 | 0.00999999977648258 |
| 2 | 1.64999997615814 |
| 3 | 0.00999999977648258 |
| 4 | 0.00999999977648258 |
+----+---------------------+
The SUM function changes 0.01 to 0.00999999977648258.
부동 소수점 숫자는 근사값으로 저장됩니다. 가격을 저장하는 경우 정확한 값을 저장하는 10 진수 데이터 유형을 사용하는 것이 좋습니다.
참조 페이지 https://stackoverflow.com/questions/3907021
반응형
'MySql' 카테고리의 다른 글
MySQL 엔터티 프레임 워크를 사용하여 저장 프로 시저 실행 (0) | 2020.11.03 |
---|---|
MySQL 쿼리 날짜> = 90 일 (0) | 2020.11.03 |
MySQL 하나의 큰 쿼리를 반환하는 것이 더 낫습니까, 아니면 몇 개의 작은 쿼리를 반환하는 것이 낫습니까? (0) | 2020.11.03 |
MySQL 데이터베이스에 연결할 때 Entity Framework 엔터티 데이터 마법사가 충돌 함 (0) | 2020.11.03 |
MySQL com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException : autocommit = true 일 때 롤백을 호출 할 수 없음 (0) | 2020.11.02 |
댓글