任何人都可以在SQL Server中解釋以下結果嗎?我很難過。SQL Server奇怪上限()行爲
declare @mynum float = 8.31
select ceiling(@mynum*100)
結果831
declare @mynum float = 8.21
select ceiling(@mynum*100)
結果822
我測試數字的整個範圍(SQL Server 2012
)。有些增加而其他人保持不變。我不知道爲什麼天花板會以不同的方式處理其中一些問題。從float
更改爲decimal(18,5)
似乎解決了這個問題,但我很謹慎,可能會有其他影響,因此我錯過了。任何解釋都會有所幫助。
你爲什麼使用浮動?我不知道切換到十進制的任何影響,除非你必須輸入更多,並且會有更多的可預測的準確性。去做就對了。請參閱[本文](http://databases.aspfaq.com/database/what-datatype-should-i-use-for-numeric-columns.html),[本文](http://classicasp.aspfaq。 com/general/why-does-3-2-1-5-4-7000000000000002.html),[本文](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/12/bad-習慣性地使用錯誤的數據類型.aspx)和[本問答](http://stackoverflow.com/q/1355418/61305)。 – 2014-10-02 16:41:40
Thx爲物品。 – TEIHelp 2014-10-02 17:45:05