2010-05-17 21 views
6
string listOfItemPrices = items.ToSemiColonList(item => string.Format("{0:C}", item.Price.ToString())); 

Tôi chỉ đang cố định dạng giá ở đây thành 2 chữ số thập phân. Ok, do đó, string.Format không thực hiện IFormattable? Ok không chắc chắn làm thế nào để có được xung quanh này để tôi có thể định dạng thập phân (giá) ở đây.Định dạng được chỉ định nhưng đối số không phải là IFormattable

Trả lời

14

Bằng cách vượt qua item.Price.ToString() đến String.Format, bạn đang chuyển một chuỗi , không phải là số thập phân.
Vì không thể sử dụng chuỗi với chuỗi định dạng, bạn sẽ gặp lỗi.

Bạn cần chuyển giá trị Decimal tới String.Format bằng cách xóa .ToString().

+0

Tôi nhận được cùng với: inFile.setINVQueryDept (string.Format ("{0: # 0.00}", frmCentral.startDept), string.Format ("{0: # 0.00}", frmCentral.endDept)); –

1

Không có điểm nào bằng cách sử dụng string.format tại đây, được sử dụng để thêm giá trị được định dạng vào chuỗi. ví dụ.

String.Format("This is my first formatted string {O:C} and this is my second {0:C}",ADecimal,AnotherDecimal) 

Nếu bạn chỉ muốn giá trị của biến thập phân dưới dạng chuỗi được định dạng thì chỉ cần chuyển định dạng chuỗi sang phương thức ToString(), ví dụ:

ADecimal.ToString("C"); 
Các vấn đề liên quan