2010-08-18 38 views

Trả lời

9

Nếu có thể, định dạng trên lớp xem, không phải trên lớp dữ liệu, tức là đọc tất cả các dữ liệu và cắt xén sau này (chẳng hạn như trong C# khách hàng)

+0

+1. Ràng buộc nó như thế này trong repeater làm việc '<% # DataBinder.Eval (Container.DataItem," FieldName "," {0: 0.00} ")%>'. Cảm ơn đã hướng dẫn tôi giải quyết vấn đề thực tế. – IsmailS

+0

@Ismail: Rất vui được! :) P.S. Tôi đã có cùng một vấn đề - 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

+0

Nhưng điều này sẽ không hoạt động trong các thành phần chỉnh sửa như lưới EvExpress. Chỉnh sửa biểu mẫu bị hỏng bởi điều đó. – f470071

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

sẽ làm những gì bạn đang sau

+0

Công việc này, nhưng khi tôi gán giá trị cho một trường trong Repeater trên trang .aspx của tôi, nó lại hiển thị hai số không theo sau. Tôi đang sử dụng LINQ to sql. – IsmailS

+0

Bạn có thể sử dụng ToString() trong bộ lặp của bạn chỉ định định dạng theo cách bạn muốn. –

+0

+1 cảm ơn câu trả lời của bạn. Câu trả lời của bạn cũng đúng khi nhìn vào câu hỏi của tôi. Nhưng @abatishchev đã cố giải quyết vấn đề lớn hơn thay vì chỉ trả lời câu hỏi của tôi. Đó là lý do tại sao, tôi đã chấp nhận câu trả lời của anh ấy. – IsmailS

0
SELECT FORMAT(123.4567,'N2') 

Nó sẽ giúp bạn Out

0

@IsmailS - Đối với tôi, bức tranh lớn hơn là để cho các định dạng máy chủ dữ liệu càng nhiều càng tốt, đặc biệt khi đó là một cái gì đó đơn giản như một dàn diễn viên inline. Nó mang lại ít lộn xộn hơn trong mã khác của bạn. Ví dụ, đúc Giá, một lĩnh vực tiền:

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

YMMV - Đó là kinh nghiệm cá nhân của tôi.

Các vấn đề liên quan