SELECT ROUND(123.4567, 2)` gives me `123.4600`
但是我需要123.46
。在SQL Server中只獲取money數據類型中的兩個小數點
字段的數據類型是金錢。
解決方案:
<%# DataBinder.Eval(Container.DataItem, "FieldName","{0:0.00}") %>
SELECT ROUND(123.4567, 2)` gives me `123.4600`
但是我需要123.46
。在SQL Server中只獲取money數據類型中的兩個小數點
字段的數據類型是金錢。
解決方案:
<%# DataBinder.Eval(Container.DataItem, "FieldName","{0:0.00}") %>
如果適用,視圖層上的格式,而不是在數據層,即讀取所有數據並截斷它稍後(例如在C#客戶端中)
SELECT CAST(ROUND(123.4567, 2) AS MONEY)
會做你所追求的
SELECT ROUND(123.4567, 2,1)
請參閱http://msdn.microsoft.com/en-us/library/ms175003(SQL.90).aspx
SELECT FORMAT(123.4567,'N2')
它會幫助你
@IsmailS - 對我來說,更大的畫面,讓數據服務器格式儘可能,特別是當它作爲一個內聯投這樣簡單的事情。它會在你的其他代碼中產生更少的混亂。例如,鑄造價格,貨幣領域:
select CAST(Price as numeric(17,2)) Price from PriceTable
因人而異 - 這是我的親身經歷。
+1。在repeater中像這樣綁定它工作'<%#DataBinder.Eval(Container.DataItem,「FieldName」,「{0:0.00}」)%>'。感謝指導我解決實際問題。 – IsmailS 2010-08-18 08:06:38
@Ismail:很高興幫助! :) P.S.我有同樣的問題 - http://stackoverflow.com/questions/1308259/rounding-down-decimal14-3-to-third-decimal-digit-in-sql-2008 http://stackoverflow.com/questions/2938296/remove-trailing-zeros-from-decimal-in-sql-server – abatishchev 2010-08-18 10:34:22
但是這不適用於像EvExpress網格這樣的編輯組件。編輯表單被打破。 – f470071 2015-10-02 11:44:27