SQL Server 2008データベースに小数点以下の数値を挿入する必要があります。 decimal()が正しいデータ型であると思われますが、正確に理解するのが難しいです。SQL Server 2008 - 10進数の理解に問題がある
私は、このスクリプト(小数点以下のため、下にスクロール)が見つかりました:
http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=95322
私は数字に対して異なる小数の設定をテストすることができます、そして、彼らは合格か不合格理由を私は理解していないいくつかがあります。 decimal(precision、scale)を使用するとき、私が理解する方法は、precisionは小数点の左側の桁数で、scaleは小数点以下の桁数です。この関数を使用すると、私はなぜいくつかが渡している理由といくつかが失敗している理由を理解していません。
SELECT dbo.udfIsValidDECIMAL('2511.1', 6, 3)
私は左に4桁、右に1桁ありますが、これは失敗します。
SELECT dbo.udfIsValidDECIMAL('10.123456789123456789', 18, 17)
SELECT dbo.udfIsValidDECIMAL('10.123456789123456789', 18, 16)
最初のものが失敗し、2番目のものが失敗します。小数点の後ろに18桁の数字があるので、両方が失敗する(または合格して、SQLは数字を切り捨てる)ようです。
おそらく、私はdecimal()がうまくいくことに根本的な誤解がありますか?
小数点の左側に桁数を得るには、精度から位取りを引く必要がありますか? – Pryach