2015-01-19 3 views
0

기부금 중 몇 퍼센트가 자선 단체에 기부되는지 사람들이 지정할 수있는 기부 웹 페이지가 있습니다. 나는 그들이 100 % 이상을 할당 할 수 없다는 것을 확인하기위한 검증을하고있다. 사람들이 10 진수 값을 추가 할 때까지 제대로 작동합니다.플롯에서 더블로 변환하면 잘못된 값이됩니다.

백분율은 SQL 데이터베이스에 수레로 저장되며 다음 저장 프로 시저를 사용하여 할당 할 수있는 총 백분율을 가져옵니다.

SELECT giftid, SUM(percentage) totalPercentage 
FROM dbo.giftFundArea 
WHERE giftid = @giftid 
GROUP BY giftid 

내 페이지는 저장 프로 시저를보고 다음 코드를 사용하여 값에 액세스합니다. 내가 Managememt Studio에서 저장 프로 시저를 실행하면

Dim percentageAllocated As Double = myReader.GetDouble(myReader.GetOrdinal("totalPercentage")) 

나는 특정 선물에 할당 된 총 비율이 33.4 %로 볼 수 있지만 내 페이지를 디버깅 할 때 나는 percentageAllocated이 33.400000000000006 %의 값을 갖는 것을 알 수있다.

이것은 분명히 유효성 확인을 포기합니다.

아무도 내가이 잘못된 변환을 어떻게 중지시킬 것을 제안 할 수 있습니까?

미리 감사드립니다.

+0

DB에서 float를 처음 사용하는 이유는 무엇입니까? 참조 : http : //stackoverflow.com/questions/1056323/difference-between-numeric-float-and-decimal-in-sql-server – NoChance

답변

관련 문제