2010-07-14 37 views
10

tôi có mã như:Làm cách nào để định dạng một đôi thành chuỗi và chỉ hiển thị chữ số thập phân khi cần thiết?

lblFranshizShowInvwNoskhehEdit.Text = string.Format("{0:n}", 
    (double)(int.Parse(drDarman["FranshizDarsad"].ToString()) * 
     Convert.ToInt64(RadNumerictxtPayInvwNoskhehEdit.Text))/100); 

Nhưng {0:n0} định dạng chuỗi đẩy văn bản của nhãn để không có chữ số thập phân và định dạng chuỗi {0:n} buộc văn bản của nhãn phải có 2 chữ số thập phân (mặc định).

Trong trường hợp của tôi, tôi chỉ muốn chữ số thập phân khi cần thiết/không làm tròn chúng/làm thế nào tôi có thể làm điều đó?

+4

Xin don' t đặt những thứ như "asp.net/C#" trong tiêu đề - chỉ cần sử dụng các thẻ cho điều đó. Bên cạnh đó, điều này không có gì để làm với ASP.NET ngoại trừ việc bạn xảy ra được đặt chuỗi bạn nhận được vào tài sản 'Văn bản' của một điều khiển' Nhãn'. –

Trả lời

23

Bạn chỉ có thể làm:

string.Format("{0}", yourDouble); 

Nó sẽ chỉ bao gồm chữ số khi cần thiết.

Nếu bạn muốn các ví dụ khác về định dạng tăng gấp đôi thành chuỗi, hãy xem link này.

EDIT: Dựa trên nhận xét của bạn bạn muốn , seperator vì vậy bạn có thể làm:

string.Format("{0:0,0.########}", yourDouble); 

Chỉ cần đặt càng nhiều # cho số tối đa của chữ số thập phân bạn muốn hiển thị. Nó sẽ chỉ hiển thị các chữ số khi cần thiết nhưng tối đa các chữ số tối đa dựa trên số lượng # bạn bao gồm trong định dạng. # chỉ hiển thị chữ số nếu cần, vì vậy nếu bạn cung cấp số như 123 không có số thập phân, nó sẽ hiển thị là 1,234 nhưng nếu bạn cung cấp số 1234.456, số này sẽ hiển thị là 1,234.456. Nếu bạn vượt quá các chữ số tối đa bạn chỉ định, chúng sẽ được làm tròn.

EDIT: Để khắc phục đôi kịch bản không bạn chỉ cần thay đổi nó để:

string.Format("{0:#,0.########}", yourDouble); 

Điều đó sẽ làm việc một cách hoàn hảo bây giờ :)

+0

nhưng trong trường hợp này tôi sẽ mất hàng nghìn dấu phân cách! làm cách nào tôi có thể giải quyết vấn đề này? – MoonLight

+0

thực sự thực sự đánh giá cao cho chỉnh sửa của bạn // tôi thực sự xin lỗi/nhưng trong mã mới này 0.4 giống như 00.4 ... cách khắc phục sự cố này? – MoonLight

+0

@LostLord đã cập nhật câu trả lời của tôi để giải quyết vấn đề đó. Hy vọng rằng sẽ giúp. – Kelsey

0

này là của tôi:

string.Format("{0:n2}", double); 
Các vấn đề liên quan