2016-05-19 15 views
0

小数を返すクエリ(SQL Server)があります。 3381.57SQLは丸めのない2桁の小数点を取得します

どれ手がかり:私は取得する必要があります上記の例では

enter image description here

:私は丸めなし2つの小数が必要?

+2

'キャスト(小数点としてNUMCOL(12,2))'? – jarlh

+0

@jarlh、OPは切り捨てたい、丸めない... – Shnugo

+0

@Shnugoは、MS SQL Serverの 'cast'ラウンドを実行しますか?予期しない。 – jarlh

答えて

2
あなたの価値を切り捨てる長さと精度パラメータを使用しての代わりに、実際にそれを丸め ROUND()機能を経由して、これを達成でき

SELECT ROUND(3381.5786, 2, 1) 

秒パラメーター2は、値が小数点以下2桁に丸められることを示し、3番目の精度パラメーターは実際の丸めまたは切り捨てが実行されるかどうかを示します(ゼロ以外の値は丸めの代わりに切り捨てられます)。

例あなたがsee an interactive example of this in action hereでき

enter image description here

+0

私の側から 'CAST(ROUND(...)DECIMAL(12,2))' ... +1を追加するかもしれません – Shnugo

0

表現を制御する場合は、値を文字列として出力する必要があります。一つの方法は、文字列に小数にして、変換することです:

select cast(cast(total as decimal(10, 2)) as varchar(255)) 

もう一つの方法は、str()を使用して文字列に変換することです。しかし、これは多くの場合、スペースの除去を必要とする:

select replace(str(total, 10, 2), ' ', '') 
+1

どちらの提案も、これを3381.58に丸めます。 ..とbtw:1つのパランシースがたくさんあります(合計の後の最初の提案)... – Shnugo

0

もう一つの可能​​性はTRUNCATEを使用することです:

SELECT 3381.5786, {fn TRUNCATE(3381.5786,2)}; 

LiveDemo

+1

面白いですが、[ODBCスカラー関数](https://msdn.microsoft.com/en-us/library/bb630290.aspx) – Shnugo

関連する問題