2010-02-04 34 views
5

có một số điều kì lạ xảy ra với báo cáo của tôi được tạo trong Dịch vụ báo cáo SQL Server và tôi hy vọng tôi không quá ngu ngốc. Tôi sử dụng hàm Round để lấy số nguyên. Đôi khi một 4,5 sẽ tròn đến 4 và 5,5 sẽ tròn đến 6. Đây có phải là do phương pháp làm tròn? Tôi đang sử dụng này:Dịch vụ báo cáo máy chủ SQL Vòng() chức năng

Round(Fields!GroupAverageAssessment.Value,0) 

Làm thế nào tôi có thể làm cho một tròn thường xuyên (4,5-5, 3,5-4, 6,5-7 và vân vân ...)

Cảm ơn

+1

datatype gì là lĩnh vực ban đầu của bạn? Một kiểu dữ liệu float có thể trông giống như nó là 4.5 nhưng thực sự là 4.49999999999 hoặc một cái gì đó và 5.5 thực sự có thể là 5.500000000000001 – HLGEM

+0

Nếu * đôi khi * trong "đôi khi một 4.5 sẽ tròn đến 4 và 5.5 sẽ tròn đến 6" thực sự là * mỗi lần * , sau đó nó đang sử dụng làm tròn của Ngân hàng. –

+0

Cảm ơn, trường được định nghĩa là Đôi, do đó không phải là vấn đề. Tôi sẽ cố gắng đi xa hơn. –

Trả lời

13

Nghe có vẻ như round to even, còn được gọi là làm tròn của Banker.

Các tùy chọn khác là "xa không", đó là những gì bạn muốn:

Round(4.5, 0, MidpointRounding.AwayFromZero) 
+0

Câu trả lời được cập nhật - chỉ nhận ra rằng AwayFromZero là những gì bạn muốn. –

+0

Cảm ơn, tôi sẽ thử điều này. Tôi đã bối rối vì tôi đọc tài liệu và khi tôi thử MidpointRounding.AwayFromZero, mã được gạch dưới là sai. Dù sao, tôi sẽ thử ... –

+0

Awayfromzero đã làm việc cho tôi, nhưng gạch dưới màu đỏ vẫn còn đó. Tôi đặt hệ thống nhập ở đâu? Cảm ơn bạn vì sự giúp đỡ. –

2

Sử dụng MidpointRounding.AwayFromZero tùy chọn:

Round([calculated number], [num decimal places], MidpointRounding.AwayFromZero) 
+0

Cảm ơn, tôi sẽ cố gắng làm điều này và cho bạn biết. –

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