2009-12-02 7 views
1

에서 FLOAT를 사용하여 소수 자릿수를 변환하는 방법이 SO question에서 OP는 소수 자릿수를 0으로 놓으려고했습니다. 이제이 문제를 해결하기 위해 내가 쓴 (아래) 예제는 DECIMAL로 CAST하고 FLOAT로 CAST했다.SQL Server 2000/2005/2008

SELECT CAST(0.55 AS FLOAT) 

0.55의 올바른 결과를 가져올 것 같다 위의 예제를 사용 및 SQL Server 2005/2008에서 실행. 그러나 다른 게시판의 Peter가 지적했듯이 SQL Server 2000에서 실행하면 0.55000000000000004가 생성됩니다.

그래서 내 질문은 : 그것은 SQL에서 데이터 변환에 관해서

  • FLOAT 모든 비용을 피할 수 있나요?

  • cast(0.55 as float)이인 이유는 나중에 0.55에서 나타납니다.

  • Microsoft는 FLOAT를 최신 버전의 SQL Server에서보다 안정적으로 사용합니까?

감사합니다.

+0

죄송합니다. kevchadders,하지만 무엇을 궁금하십니까? –

+0

루벤스 혼란에 대해 유감스럽게 생각합니다. – kevchadders

+0

명확성을 위해 예제는 다음과 같아야합니다. select cast (부동 소수점으로 0.55). 십진수 부분은 다른 질문과 만 관련이 있으므로 – Peter

답변

1

내 개인 황금률은 다음과 같습니다. float를 피하십시오. 나는 최근 몇 년간 플로트를 사용하는 것을 기억하지 못합니다.

내가 최근에 취한 모든 비즈니스 시나리오는 고정 된 정밀도로 통화 값 또는 숫자를 저장해야하므로 DECIMAL 또는 MONEY을 선호합니다.

+0

입니다. – kevchadders

+0

당신은 또한 그것을 바꿔서 현상금을 추가 할 수 있습니다; –

+0

또한 여기를 참고하십시오. http://docs.sun.com/source/806-3568/ncg_goldberg.html –

관련 문제