1
数字があります。たとえば、11.61
です。私は次の部門を作る:1/11.61
。 1/@value2
SQLの分周数によって前後に丸め誤差が発生する
SET @value1 = 1/@value2
結果が
(No column name) (No column name)
11.61000000000000079000 0.08613264427217915000
元と期待値のようになります。
DECLARE @value1 numeric(28, 20)
,@value2 numeric(28, 20)
SET @value1 = 11.61
SET @value2 = 1/@value1
結果は、私はその後、分裂を逆にする
(No column name) (No column name)
11.61000000000000000000 0.08613264427217915000
のように見えますs 11.61
である必要があります。しかし、あなたが見ることができるように、結果は11.61000000000000079000
です。このエラーはどのようにして回避できますか?
COmputersはすべての可能な実数を表すことはできません。あなたは無限の数です。だから彼らは表現できる最も近いものを使います。これにより、非常に小さな相違が生じます。体重が120ポンドで、120.00000000000000001ポンドではない場合は気になりますか?そうした場合、唯一の選択肢は10進数(28,2)として宣言するか小数点以下2桁に丸めます。 –
も、[this](https://stackoverflow.com/questions/1987452)に関する質問を参照してください。https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html – SeanC