2011-09-15 39 views
11

Tôi cần phải định dạng kiểu double để nó có tối thiểu hai chữ số thập phân nhưng không giới hạn đối với số lượng tối đa các chữ số thập phân:Format loại đôi với số lượng tối thiểu của các chữ số thập phân

5  -> "5.00" 
5.5 -> "5.50" 
5.55 -> "5.55" 
5.555 -> "5.555" 
5.5555 -> "5.5555" 

Làm thế nào tôi có thể đạt được điều đó?

+0

Vì vậy, bạn muốn đôi chuyển đổi sang chuỗi và chắc chắn rằng nó có tối thiểu chữ số 2 chữ số thập phân? –

+0

@Bojan Kogoj, vâng – SiberianGuy

Trả lời

3

Hãy thử điều này

static void Main(string[] args) 
    { 
     Console.WriteLine(FormatDecimal(1.678M)); 
     Console.WriteLine(FormatDecimal(1.6M)); 
     Console.ReadLine(); 

    } 

    private static string FormatDecimal(decimal input) 
    { 
     return Math.Abs(input - decimal.Parse(string.Format("{0:0.00}", input))) > 0 ? 
      input.ToString() : 
      string.Format("{0:0.00}", input); 
    } 
32

Bạn có thể sử dụng định dạng specificer 0 cho các số không bắt buộc, và # cho tùy chọn chữ số:

n.ToString("0.00###") 

Ví dụ này cung cấp cho bạn lên đến năm chữ số thập phân, bạn có thể thêm # vị trí khi cần thiết.

2

Something như ToString("0.00#") nên làm việc

Trong trường hợp này nó sẽ là tối đa đến 3 chữ số thập phân, vì vậy thêm băm theo yêu cầu.

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