2010-08-18 45 views

回答

9

如果適用,視圖層上的格式,而不是在數據層,即讀取所有數據並截斷它稍後(例如在C#客戶端中)

+0

+1。在repeater中像這樣綁定它工作'<%#DataBinder.Eval(Container.DataItem,「FieldName」,「{0:0.00}」)%>'。感謝指導我解決實際問題。 – IsmailS 2010-08-18 08:06:38

+0

@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

+0

但是這不適用於像EvExpress網格這樣的編輯組件。編輯表單被打破。 – f470071 2015-10-02 11:44:27

16
SELECT CAST(ROUND(123.4567, 2) AS MONEY) 

會做你所追求的

+0

這是有效的,但是當我在.aspx頁面上將值賦給Repeater中的字段時,它再次顯示兩個尾隨零。我正在使用Linq到SQL。 – IsmailS 2010-08-18 08:02:01

+0

您可以在轉發器中使用ToString()指定格式以達到您的要求。 – 2010-08-18 08:06:08

+0

+1謝謝你的回答。你的回答也正確的看着我的問題。但@abatishchev試圖解決更大的問題,而不是回答我的問題。這就是爲什麼,我已經接受了他的答案。 – IsmailS 2010-08-18 08:10:09

0
SELECT FORMAT(123.4567,'N2') 

它會幫助你

0

@IsmailS - 對我來說,更大的畫面,讓數據服務器格式儘可能,特別是當它作爲一個內聯投這樣簡單的事情。它會在你的其他代碼中產生更少的混亂。例如,鑄造價格,貨幣領域:

select CAST(Price as numeric(17,2)) Price from PriceTable

因人而異 - 這是我的親身經歷。

相關問題