SQL Server 2000/2005/2008에서 Float를 사용하여 소수점 자리가 변환되는 방법
-
11-09-2019 - |
문제
이것에서 그래서 질문 OP는 그의 결과를 위해 10 진수 자리에서 0을 떨어 뜨리기를 원했습니다. 이제 내가 이것을 돌아 다니기 위해 내가 준 예제는 10 진수로 캐스팅 한 다음 플로트로 캐스팅하는 것이 었습니다.
예를 들어
SELECT CAST(0.55 AS FLOAT)
위의 예제를 사용하여 SQL Server 2005/2008에서 실행하면 0.55의 올바른 결과를 가져 오는 것으로 보입니다. 그러나 다른 게시물의 Peter가 지적했듯이 SQL Server 2000에서 실행하면 0.55000000000000004가 생성됩니다.
그래서 내 질문은 다음과 같습니다.
SQL의 데이터 변환과 관련하여 Float가 모든 비용으로 피해야합니까?
왜
cast(0.55 as float)
수율0.55000000000000004
SQL2K에서 아직0.55
나중에디션에서?Microsoft는 Float를 사용하여 나중에 SQL Server 버전에서 더 안정적인 것을 만들었습니까?
시간 내 줘서 고마워.
해결책
내 사람의 황금률은 다음과 같습니다. 부유물을 피하십시오. 최근 몇 년 동안 플로트를 사용하는 것을 기억할 수 없습니다.
통화 값을 저장해야했던 모든 비즈니스 시나리오, 또는 고정 정밀도로 숫자를 사용 했으므로 사용하는 것이 좋습니다. DECIMAL
또는 MONEY
.
제휴하지 않습니다 StackOverflow