1
숫자가 있습니다 (예 : 11.61
). 나는 다음 부서를 만든다 : 1/11.61
. 1/@value2
SQL 나누기 번호로 앞뒤 반올림 오류가 발생합니다.
SET @value1 = 1/@value2
결과는
(No column name) (No column name)
11.61000000000000079000 0.08613264427217915000
원래 예상 값과 같습니다
DECLARE @value1 numeric(28, 20)
,@value2 numeric(28, 20)
SET @value1 = 11.61
SET @value2 = 1/@value1
결과는 그때 분할을 반대 할
(No column name) (No column name)
11.61000000000000000000 0.08613264427217915000
처럼 에스 11.61
이되어야합니다. 그러나 결과는 11.61000000000000079000
입니다. 어떻게이 오류를 피할 수 있습니까?
컴퓨터가 가능한 모든 실수를 나타낼 수 없습니다. 그들은 무한한 숫자입니다. 그래서 그들은 표현할 수있는 가장 가까운 것을 사용합니다. 그 결과 불일치가 매우 작습니다. 체중이 120 파운드이고 120.00000000000000001 파운드가 아니라면 신경 써야합니까? 그렇다면 소수점 이하 (28,2)로 선언하거나 소수점 이하 2 자리로 반올림하십시오. –
도 [this] (https://stackoverflow.com/questions/1987452) 질문에 대한 답변 : https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html을 참조하십시오. – SeanC