2013-03-12 54 views
0

我有這個問題:在我的數據庫中存在一個雙精度值的字段。我需要這個值是以一個不變的步驟取整的: 例如我設置了一個20.0的步長,我希望17.8的值變爲20.0,31.2的值變爲40.0等等。sql server更新來自步驟的雙精度舍入

我該怎麼做一個問題?

在此先感謝

回答

1
declare @stepsize float = 20.0 

declare @val float = 17.6 

select CEILING(@val/@stepsize) * @stepsize -- Result 20.0 

set @val = 31.2 

select CEILING(@val/@stepsize) * @stepsize -- Result 40.0 

從你的問題來看,6.0還不清楚,應該是20.0。它是否應該歸結爲零?

+0

是的,直到20的值四捨五入爲零 – ghiboz 2013-03-13 00:00:23

+0

這不是你原來的問題所述。 – 2013-03-13 00:01:17

1

您由工序分割值,四捨五入,然後由步長乘以做到這一點。大多數SQL方言都有算術功能。

+0

謝謝你,有可能做一個單一的查詢? – ghiboz 2013-03-12 23:53:51

+0

它應該是,在更新中進行賦值的權利。 – 2013-03-12 23:54:37

+0

差不多。第二步應該使用上限函數,而不是舍入函數。與31.2一起穿過它。 – 2013-03-12 23:58:49