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