ラウンド関数には2つの動作があります。値coursが "3.1235"、round(cours, 3) = 3.123
に等しい。しかし、このラウンド公式では、コースをその値(3.1235)で置き換えると、round(3.1235, 3) = 3.1240
となります。SQLサーバーのラウンド関数のさまざまな動作
0
A
答えて
0
このような小数点以下の値にはfloatデータ型を使用しないでください。そのような目的のために設計されていないためです。あなたがしようとしているもののより良いコンテキストを得るためにコードをもっと見る必要がありますが、もしが最初に浮動小数点であることがであれば、10進数で@coursをキャストできますか?
round(cast(@cours as decimal(5,4)), 3)
0
あなたのFLOATは、本当にそれが印刷されたグリッドに示されているものだけで、3.1235が含まれていません。内部的にFLOATは3.1234999999999999
であり、これは明らかに、3.123
に切り捨てられている。
リテラル3.1235
は、完全に正確であるほどの精度を持つ数値になります。したがって、予想通り、3.124
に切り上げられます。
証明:
SELECT CAST('3.1235' as FLOAT),
CAST(3.1235 as FLOAT)
-- misleading output: both print 3.1235
SELECT CAST(CAST('3.1235' as FLOAT) as NUMERIC(24,23)),
CAST(CAST(3.1235 as FLOAT) as NUMERIC(24,23))
-- both print 3.12349999999999990000000
SELECT CAST('3.1235' as NUMERIC(24,23)),
CAST(3.1235 as NUMERIC(24,23))
-- both print 3.12350000000000000000000
関連する問題
- 1. PapaParseの "unparse"関数はさまざまなヘッダーで動作できますか?
- 2. グローバル変数がPythonのさまざまな関数で動作しないのはなぜですか?
- 3. なぜC#ラウンド関数とSQLラウンド関数が異なる出力をもたらすのですか?
- 4. 関数のさまざまなレベルの変数へのアクセス
- 5. SQLのさまざまな列
- 6. Javascriptのラウンド関数
- 7. jQueryラウンド関数
- 8. matlabの1つの関数のさまざまな入力
- 9. Laravelさまざまなユーザータイプの関係
- 10. さまざまなブラウザで異なるJavaScriptの動作
- 11. CordaフローユニットテストでのさまざまなverifySignatures関数の違い
- 12. PHPMailerのさまざまな動作のPHPコード
- 13. さまざまなアカウントの複数の動画のYoutubeプレーヤー
- 14. さまざまなnumpyランダム関数の違い
- 15. さまざまなデータ型を持つPython関数の入力
- 16. Matlabでさまざまなパラメータの関数を呼び出す
- 17. python numpyラウンド関数の奇妙なエラー
- 18. JNA PC上のさまざまな動作
- 19. c#Wpfアプリケーションのさまざまな動作
- 20. JavaScrpitのさまざまな動作onload/onclick
- 21. さまざまなブラウザのタイムアウト動作ですか?
- 22. カスタムタブが閉じず、Androidバージョンのさまざまな動作
- 23. Tensorflowの微分ラウンド関数?
- 24. ラウンド関数VBA EXCEL
- 25. さまざまなデバイス用のサーバー上のイメージのサイズ変更
- 26. javascriptはさまざまなブラウザで動作しません
- 27. ランダムな結果のさまざまな数でSQL Serverのランダム結合
- 28. さまざまな向きのストーリーボード、エッジ、さまざまなビュー
- 29. さまざまなサーバーのファイルをロックするnodejs
- 30. さまざまな入力データ型を持つスカラ関数
どのようなタイプは、 'cours'のですか? – Mureinik
コースの種類はフロートです。 –
問題を再現できますか?これらが等しいので、私たちに言っていないことがあります... 'decare(5,4)= 3.1235 選択ラウンド(@cours、3) 選択ラウンド(3.1235,3)' – scsimon