Tôi có giá trị double
như 12.256852651
và tôi muốn hiển thị số đó là 12.257
làm số phao mà không chuyển đổi nó thành loại chuỗi.Làm tròn giá trị phao
Tôi có thể làm điều đó như thế nào trong C#?
Tôi có giá trị double
như 12.256852651
và tôi muốn hiển thị số đó là 12.257
làm số phao mà không chuyển đổi nó thành loại chuỗi.Làm tròn giá trị phao
Tôi có thể làm điều đó như thế nào trong C#?
Lần đầu tiên tôi chuyển đổi thành Decimal
và sau đó sử dụng Math.Round
trên kết quả. Chuyển đổi này là không cần thiết, nhưng tôi luôn luôn cảm thấy một chút khó chịu nếu tôi vòng đến số thập phân trong khi sử dụng các điểm nổi nhị phân.
Math.Round((Decimal)f, 3, MidpointRounding.AwayFromZero)
Bạn cũng nên xem xét lựa chọn MidpointRounding
, vì theo mặc định này sử dụng vòng Banker, mà không phải là điều bạn đang sử dụng để đi học.
Hãy nhớ rằng, khi làm tròn một kiểu dấu phẩy động (ngược với 'System.Decimal') thành một số số thập phân lớn hơn' 0', thì thông thường "điểm giữa" không thể biểu diễn chính xác. Ví dụ: "trung điểm" '12,2565' (trung bình của hàng xóm' 12.256' và '12.257') không chính xác được thể hiện như là một' double' kể từ khi mở rộng nhị phân của nó là vô hạn (định kỳ) (thường là trường hợp). Vì vậy, có một lý do chính đáng để cố gắng chuyển đổi sang 'thập phân' trước khi làm tròn nếu người ta muốn" điểm giữa "thực sự được nhấn. Với 'double' thường có một" lỗ hổng "nơi mà điểm giữa nên có. –
Nếu bạn muốn hiển thị nó, nó sẽ là một chuỗi và đó là những gì bạn cần sử dụng.
Nếu bạn muốn vòng để sử dụng sau này trong tính toán, hãy sử dụng Math.Round((decimal)myDouble, 3)
.
Nếu bạn không định sử dụng nó trong tính toán nhưng cần phải hiển thị, hãy sử dụng double.ToString("F3")
.
Math.Round (giá trị, 3) http://msdn.microsoft.com/en-us/library/75ks3aby.aspx – FailedDev
Bạn có ý nghĩa gì bởi "và không phải là định dạng chuỗi"? Bạn đang định dạng số dưới dạng chuỗi để hiển thị số, phải không? –
Có lẽ nó đi qua dây như một số (json, nói). Nó có thể cần phải được lưu trữ như là một phía khách hàng số ngoài việc được chuyển đổi thành một chuỗi để hiển thị trong một giao diện người dùng. Chỉ cần đoán dựa trên các trường hợp sử dụng tương tự ở đây. –