declare @alpha float
declare @tmp int
set @tmp = 6
set @alpha = 1/@tmp
select @alpha
>> Here @alpha is echoed as 0
declare @tmp1 float
set @tmp1 = 6
set @alpha = 1/@tmp1
select @alpha
>> Here @alpha is echoed as 0.1666666
적어도 경고를 던졌지 만 컴파일러에서 경고를 표시하지 않으면 문제가되지 않습니다. 아니면 자동으로 원하는 캐스트로 변환하는 같은 종류의 캐스트 작업에 대한 컴파일러 설정이 있습니다.Sql int에서 float 로의 변환 변환
int를 float로 변환하는 것이 어렵지 않다는 것을 의미하며 그 반대도 내 이유입니다. 다른 논리적 인 질문은 날짜 변수를 varchar
변수로 허용하지 않으면 왜 int
에서 float
까지 허용해야하며 바람직하지 않은 결과를 초래하게됩니다.
@alpha 변수를 부동 소수점으로 설정했기 때문에 – user1974729
컴파일러는 정수 수학 또는 부동 소수점 연산을 원할 때 알 수 없으므로 경고를 줄 수 없습니다. – Andomar
예요 내가 게시의 일부를 놓친 거예요 @ 알파 부동 .. 그래서 컴파일러는 변수에 맞게 더 많은 공간을 가지고 있고 그것이 부동 소수점 수학이라고 추론 .. 수학 계산을하고 있지만 괜찮아요 저를 경계하지 않으며 저것을 찾아 낸다 다소 이상한 – user1974729