2011-09-15 20 views
11

ho bisogno di formattare doppia tipo in modo che abbia un minimo di due cifre decimali, ma senza limitazione per il numero massimo di cifre decimali:Formato tipo doppio con il numero minimo di cifre decimali

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

Come posso raggiungerlo?

+0

Così si vuole fare doppio convertito a stringa e assicurarsi che abbia minimi cifre decimali 2? –

+0

@Bojan Kogoj, si – SiberianGuy

risposta

3

Prova questa

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

È possibile utilizzare il formato di specificer 0 per le cifre non opzionali, e # per le cifre opzionali:

n.ToString("0.00###") 

Questo esempio ti dà fino a cinque cifre decimali, è possibile aggiungere più # posizioni a seconda delle necessità.

2

Qualcosa del genere dovrebbe funzionare ToString("0.00#")

In questo caso sarebbe massimo a 3 cifre decimali, in modo da aggiungere hash come richiesto.

Problemi correlati