2017-07-26 5 views
2

これは重複した質問ではないか分かりません。5より大きい場合にのみ丸め値

私は成功した値が例えば5

よりも大きい場合にのみROUND値に必要があります。

私は123.4575を持っている場合は、丸めた値が123.457でなければなりません。

私は123.4576を持っている場合は、丸めた値が123.458でなければなりません。

しかし、デフォルトのROUNDは私が期待しているとおりに機能しません。私は3つだけ小数点を必要とする


123.458(それは123.457にする必要がある場合)

:以下のクエリを参照してください、

select cast(round(123.4575, 3) as decimal(18,3)) 

結果。

自分で関数を書くのではなく、組み込みの関数をいくつか提案したいと思います。

ありがとうございました。

答えて

1

これが尋ねられました(何度も)。 5は常にSQL Serverによって切り上げられます。 Minhの答えであるhereであなた自身の日常的な表情を書こうとしない場合。これは、case文とFLOORを使用して、あなたが望むものを達成するためのすっきりしたやり方を示しています。

も容易代替は、このように、あなたの丸め1より高い精度で第1の電話番号から1を減算することである。

SELECT CAST(ROUND(123.4576 - 0.00001, 3) as decimal(18,3)) 

が123.458

を与えながら

SELECT CAST(ROUND(123.4575 - 0.00001, 3) as decimal(18,3)) 

は、123.457を与えます

関連する問題