> 데이터 베이스 > MySQL 튜토리얼 > PostgreSQL에서 부정확한 정수 나누기를 어떻게 방지할 수 있습니까?

PostgreSQL에서 부정확한 정수 나누기를 어떻게 방지할 수 있습니까?

Linda Hamilton
풀어 주다: 2024-12-27 17:46:10
원래의
888명이 탐색했습니다.

How Can I Avoid Inaccurate Integer Division in PostgreSQL?

PostgreSQL의 나누기(/) 부정확성

PostgreSQL에서 나누기를 수행할 때 정확한 결과를 보장하려면 관련된 데이터 유형을 고려하는 것이 중요합니다. . 개발 비용을 회수하기 위해 판매할 소프트웨어 수량을 결정하는 것이 목표인 설명된 경우 정수 나누기는 잘못된 결과로 이어질 수 있습니다.

제공된 쿼리에서 dev_cost 및 Sell_cost는 모두 정수 유형입니다. 정수 나누기는 결과를 0 쪽으로 자릅니다. 즉, 16000을 7500으로 나누면 예상되는 3 대신 2가 생성됩니다.

정확한 결과를 얻으려면 값 중 하나 이상을 부동 소수점으로 캐스팅해야 합니다. 부동 소수점 또는 소수와 같은 유형입니다. 또는 ::decimal 구문을 사용하여 dev_cost를 암시적으로 십진수로 명시적으로 변환할 수 있습니다. 이렇게 하면 나누기가 부동 소수점 연산으로 강제되어 잘리지 않는 나누기가 발생합니다.

다음 수정된 쿼리를 고려하세요.

select dev_cost::decimal / sell_cost from software ;
로그인 후 복사

또는 ceil() 함수를 사용할 수도 있습니다. 결과를 가장 가까운 정수로 반올림하려면:

select ceil(dev_cost::decimal / sell_cost) from software ;
로그인 후 복사

이러한 기술을 활용하면 정확한 나눗셈 결과를 얻을 수 있습니다. 달성하여 데이터베이스 쿼리를 기반으로 한 비즈니스 계산이 건전하게 이루어지도록 보장합니다.

위 내용은 PostgreSQL에서 부정확한 정수 나누기를 어떻게 방지할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿