Cercando di non ripetermi (per essere ASCIUTTO) qui, aiutami. =)Come convertire in modo intelligente e sicuro un doppio in stringa?
Ho un doppia che rappresenta un rating/5.
I valori possibili sono:
0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5.
voglio convertire questo in una stringasenza il decimale.
Così i valori sarebbero diventati:
"0", "05", "1", "15", "2", "25", "3", "35", "4", "45", "5".
perché sto facendo questo? Perché sto cercando di creare un collegamento dinamico in base al valore:
string link = "http://somewhere.com/images/rating_{0}.gif";
return string.Format(link, "15");
I valori possibili sono gestite/convalidato altrove, in altre parole, posso essere sicuro al 100% il valore sarà sempre uno di quelli che ho citato .
Qualche idea? Qualche formato speciale che posso usare nel metodo .ToString()
? O sono bloccato con una dichiarazione di interruttore non-DRY? O posso fare sfacciatamente un decimal.ToString().Replace(".","")
?
EDIT:
Whoah, grazie per tutte le risposte ragazzi! =)
La maggior parte delle risposte è corretta, quindi lascerò questa opzione aperta per un giorno o più e selezionerò la risposta con il maggior numero di voti.
In ogni caso, ho finito per la creazione di un semplice metodo di estensione:
public static string ToRatingImageLink(this decimal value)
{
string imageLinkFormat = "http://somewhere.com/images/rating_{0}.gif";
return string.Format(imageLinkFormat, value.ToString().Replace(".0", string.Empty).Replace(".", string.Empty);
}
Immagino che fosse un caso di "Kiss" e "DRY". In questo caso lo zucchero sintattico dei metodi di estensione lo ha tenuto ASCIUTTO, e l'attuale implementazione a una riga soddisfa KISS.
Ho cercato di creare un 'NumberFormatInfo', ma ottenere 'Separatore decimale non può essere la stringa vuota'. Vergogna. – Kobi
+1 per chiedere una domanda ben strutturata – hydrogen