0

次のような SQL クエリがあります。

UPDATE t_example 
SET column1=column2/column3 
where 'SOME CLAUSE'

column2 の値が 7 で、column3 の値が 1 であるとします。このステートメントの後で column1 を値 7 に設定する必要がありますが、7 ではなく常に 6 です。除数が 1 である値のペアの結果は常に 1 少なくなります。 t は 1 以外の値をチェックしましたが、なぜこの動作なのですか?

4

2 に答える 2

3

これはおそらく浮動小数点の不正確さです。

あなたcolumn2はおそらく浮動小数点でcolumn1あり、int. 計算結果が の場合、6.999999999変換後の結果intは です6

正確な精度が必要な場合は、 のような固定小数点データ型を使用する必要があります。decimal

于 2013-09-16T07:47:07.333 に答える