2012-03-17 41 views
14

Tôi gặp sự cố kỹ thuật khi sử dụng tỷ lệ phần trăm theo phương pháp StringFormat.Tỷ lệ phần trăm trong StringFormat

Kết quả của String.Format("{0:P}", 0.8526)85.26%

nhưng tôi nghĩ rằng nó phải được 0.8526%

Is it correct? Nếu có, Làm thế nào tôi có thể nhận được 0.8526%?

+4

String.Format ("{0}%", 0,8526) – Steve

Trả lời

17

Console.WriteLine(string.Format("{0}%", 0.8526));

12

Có tính toán 0,8526 bằng 85,26%. Nếu bạn cần phải nhận được 0,8526% sau đó thử này

String.Format("{0:P}", 0.8526/100) 
+0

Tôi muốn sử dụng DataFormatString trong lưới. làm thế nào tôi có thể thực hiện phân chia ở đó? – Mironline

+0

Trong trường hợp của bạn, bạn thậm chí không cần phải chia. nếu bạn cần '0,8526' là' 0,8526% 'thì tại sao bạn không thêm'% 'vào số? '" 0,8526% "= 0,8526.ToString() +"% "'. Không giúp đỡ à? – Kaf

+4

-1 Tại sao chia và nhân với cùng một số tiền? Chỉ cần đầu ra {0}% –

2

String.Format sẽ nhân với 100% khi bạn sử dụng hoặc: p String.Format Bạn nên chia cho 100 đầu tiên nếu bạn muốn nhận được những gì bạn đang tìm kiếm.

+3

-1 Tại sao chia và nhân với cùng một số tiền? Chỉ cần xuất {0}% –

+6

@Chris vì String.Format sẽ tính đến các quy tắc của văn hóa hiện tại để định dạng giá trị phần trăm trong khi {0}% là mã hóa cứng theo tiêu chuẩn US-EN. –

+0

Đó là loại khó như mã hóa cho một nền văn hóa cụ thể, nhưng không thực sự. Đôi sẽ được định dạng ngầm sử dụng định dạng G định dạng. Bỏ qua biểu tượng phần trăm hoàn toàn, trình định dạng G định dạng số khác với P, chủ yếu ở số lượng dấu thập phân được hiển thị theo mặc định. Bạn chỉ nên đọc về G và P trên https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx. – user1676558

2

Tỷ lệ phần trăm được xem là 0-100% và số con trỏ thả nổi có liên quan từ 0.0-1.0 vì nó là tỷ lệ giữa hai số.

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