-2
今日、CEILING()
のバグが見つかりました。どうしてか分かりません。CEILING()で何が起こったのですか?
私に答えを与えることができる人、pls。
ありがとうございました。
私はCEILING()SQL Server 2012のテストする場合:
今日、CEILING()
のバグが見つかりました。どうしてか分かりません。CEILING()で何が起こったのですか?
私に答えを与えることができる人、pls。
ありがとうございました。
私はCEILING()SQL Server 2012のテストする場合:
を。これは、それ自体がバグではありません。浮動小数点は、2
の(負の)べき乗の有限の和として表すことができないので、0.17
を正確に表すことはできません。したがって、0.17
は最も近い表現可能な数で表されます。
結果として0.17
は実際には0.170000...1
のように表されます。したがって、CEILING
を実行すると、1701
と表示されます。
@Squirrelによると、DECIMAL
には、指定された桁数の数字が正確に格納されています。
あなたはFLOATを使用しています。フロートはおおよその値です。 10進数に変更して試してみてください – Squirrel
これは、あなたがバグを犯す可能性があります。私たちは何を見ているのですか?あなたはどこにエラーがあると思いますか?あなたは正しい価値があると思いますか? – TomTom
[浮動小数点演算は壊れていますか?](http://stackoverflow.com/questions/588004/is-floating-point-math-broken) – AakashM