2012-03-22 3 views
2

Я хочу округлить до ближайшей половины десятичных знаков (геокоординаты), чтобы сделать некоторую визуализацию данных. В t-sql существует встроенная функция для округления до полусекунды (если это термин). Примеры желаемого результата:TSQL round to half decimals

1.1 > 1.0 
    1.4 > 1.5 
    1.6 > 1.5 
    1.9 > 2.0 
+0

Я не знаю ни одной встроенной функции, которая делает это. Можете ли вы привести несколько дополнительных примеров, например, что делает 1,25 и 1,3 раунда? Может быть, кто-то будет знать простой способ сделать математику. –

ответ

11

Просто умножьте на 2 раунда, и разделить на 2.

select round(1.1 * 2, 0)/2 -- > 1.0 
select round(1.4 * 2, 0)/2 -- > 1.5 
select round(1.6 * 2, 0)/2 -- > 1.5 
select round(1.9 * 2, 0)/2 -- > 2.0 

Round on MSDN

+1

приятно и просто! – danihp

+2

+1 ... надеюсь, что вы не возражаете, добавив пример и ссылку. –

+1

@AdamPorad: 'round (1.29 * 2)/2' дает' 1.5'. – Guffa