2013-05-09 97 views
8

Đây có thể là một câu hỏi đơn giản và tôi chắc chắn có cách để làm điều đó với string.format(), NumberFormatInfo, CultureInfo hoặc một số kết hợp nhưng tôi cần hiển thị các giá trị số lớn với 3 chữ số thập phân sau, một số thập phân thay vì dấu phẩy cho dấu tách hàng nghìn và sau đó là dấu phẩy cho dấu tách hàng triệu trở lên.số định dạng có 3 dấu thập phân, dấu phân tách hàng thập phân và dấu phẩy sau

Đầu vào là một trong hai số nguyên hoặc một số tiếp theo đến ba chữ số thập phân (20000, 123,456, 12,2)

Ví dụ:

142650 sẽ hiển thị như 142,650.000

11200,50 nên hiển thị dưới dạng 11.200.500

123.456 nên giữ nguyên 123.456

Tôi cho rằng nó giống như chia v alue vào năm 1000 và sau đó sử dụng string.format("{0:f3}", value), nhưng tôi đã hy vọng tìm thấy một cái gì đó mà không có số học.

String.Format("{0:#,#.000}", value) được tôi gần, nhưng nó đặt một 0 hàng đầu về số lượng nhỏ, vì vậy 1,256 đang hiển thị là 01,256, khi tôi cần nó để duy trì chỉ 1,256

+1

Chính xác thì bạn chuyển cho giá trị nào? 'String.Format (" {0: #, #. 000} ", 1256)' in "1,256.000". Tôi nghĩ chúng ta cần xem thêm mã của bạn. –

+0

Xem chỉnh sửa. Xin lỗi vì điều đó. – Brett

+0

Dựa trên chỉnh sửa của bạn, có vẻ như bạn hiện đang chia đầu vào cho 1000. Khi bạn nêu, định dạng f3 sẽ cung cấp cho bạn chính xác những gì bạn cần tại thời điểm này. –

Trả lời

11

Định dạng String.Format("{0:#,0.000}", value) đã kết thúc làm việc đó cho tôi. Nó hoạt động cho toàn bộ số và số với bất cứ nơi nào từ 1 đến 3 dấu thập phân.

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