SQLでラウンドを実行しようとしていますが、結果は非常に奇妙です。ここで私は何をすべきかです:SQLの丸めが必ずしも切り上げられない
私は私が選択していMSSQL
を使用しています:
Select num1, num2, num1 * num2, round(num1 * num2, 2)
from myTable
データ型:
NUM1がフロート
からnum2がAでありますお金
NUM1の値が15 あるとNUM2の値はここで0.033 である私の結果セットの場合:
15、0.033、0.495、0.5
私はそれらの値を持っているときに問題があります:
:NUM1の値が5 あるとNUM2の値はここで0.045 ある場合は、私の結果セットです
5,0.045,0.225,0.22
誰かが考えていますか?
MONEYデータ型を使用する必要がありますか?可能であれば、ここでは10進数に賛成して避けなければならない理由についての説得力のある記事があります:http://sqlserverpedia.com/blog/sql-server-bloggers/throw-your-money-away/ – David
私は、私はsqlect:round(convert(decimal(10,3)、num2)* num1,2)でこれを試してみましたが、うまくいきませんでした:( – GregM
興味深いのは私のために働いています。 CONVERT(小数点(10,3)、0.045)* 5,2)。「選択ラウンド(5 * 0.045、2)」でも正しい結果が得られます。 – David