rate
이라는 십진수를 매개 변수 중 하나로 보내는 저장 프로 시저를 호출하려하지만 쿼리를 실행할 때 십진수 정밀도가 손실됩니다. exchangeRate.Rate
는 0.0000631046
입니다,이 시점에서SQL 쿼리에서 NHibernate 10 진수 정밀도
IQuery query = Session.CreateSQLQuery("exec SaveExchangeRate @Rate = :rate, @OtherParameter = :otherParameter");
query.SetDecimal("rate", exchangeRate.Rate);
query.SetInt32("otherParamter", otherParamter);
query.ExecuteUpdate();
:
이
은 서버 측 코드입니다.나는 SQL 프로파일 러를 열고
, 나에게주고있다 :exec sp_executesql N'exec SaveExchangeRate @Rate = @p0, @OtherParamter = @p1',N'@p0 decimal(28,5),@p1 int',@p0=6,@p1=4
보시다시피, 정밀도는 decimal(28,5)
하지만, 저장 프로 시저 내부에 필요한 정밀도 decimal(19,10)
이고, 수는 SQL로 전송 데이터베이스는 정확도가 떨어지는 6
입니다. 그 후, 지속 된 숫자는 0.0000600000
이며 많은 소수를 잃습니다.
이 문제를 해결하려면 어떻게해야합니까?
이 게시물을 본 적이 있습니까? http://stackoverflow.com/q/5243486/497356 –
그래,하지만, 당신이 볼 수 있듯이, 값이 속성에서 왔기 때문에, 그것의 매핑되지 않습니다 – lante