これが私が実行しているクエリです
Select (100/18)*18
私が得た答えは90です。それぞれの数値を小数として宣言しようとしましたが、値を取得しました100.0008
が、変数を浮動小数点数として計算すると、答えは「100」で正しいので、SQLが計算する理由は誰にもわかりません。このような?
これが私が実行しているクエリです
Select (100/18)*18
私が得た答えは90です。それぞれの数値を小数として宣言しようとしましたが、値を取得しました100.0008
が、変数を浮動小数点数として計算すると、答えは「100」で正しいので、SQLが計算する理由は誰にもわかりません。このような?
それは最初にparanthesisを解決するので
それで
Select (100/18)*18
will(100/18)= 5.555555ただし、両方の数値をintと見なすため、結果がintとしてキャストされるため、5が返されます。
だから今5*18 = 90
正しい結果が必要な場合は、代わりにこれを実行してくださいSelect (100*18)/18
目的の結果を得るには、次のような方法を試してください。
Select CEILING((100/18.0)*18)
あなたがこれをするとき、
Select (100/18)*18
SQL Serverは、操作を整数除算と見なし、5.55555の5つのインストールとして100/18を選択します。
数字を10進数で表現してみてください
SELECT (100.0/18)*18
と
SELECT ROUND((100.0/18)*18,2)
..。
あなたはこれを試すことができます
select abs(18*100/18)