Tratando de no repetirme (estar seco) aquí, ayúdame. =)¿Cómo convertir de manera inteligente y segura un doble a cadena?
Tengo un doble que representa una calificación/5.
Los valores posibles son:
0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5.
quiero convertir esto en una cadenasin el punto decimal.
Así que los valores se convertiría en:
"0", "05", "1", "15", "2", "25", "3", "35", "4", "45", "5".
Por qué estoy haciendo esto? Porque yo estoy tratando de crear dinámicamente un vínculo basado en el valor:
string link = "http://somewhere.com/images/rating_{0}.gif";
return string.Format(link, "15");
Los valores posibles son manejados/validado en otros lugares, en otras palabras, puedo estar 100% seguro de que el valor será siempre uno de los que he mencionado .
¿Alguna idea? ¿Algún formato especial que puedo usar en el método .ToString()
? ¿O estoy atrapado con una declaración de cambio no DRY? ¿O puedo descaradamente hacer un decimal.ToString().Replace(".","")
?
EDIT:
Whoah, gracias por todas las respuestas a los chicos! =)
La mayoría de las respuestas son correctas, así que lo dejaré abierto durante aproximadamente un día y elegiré la respuesta con la mayor cantidad de votos.
De todos modos, terminé creando un simple método de extensión:
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);
}
supongo que era un caso de "Kiss" y "seco". En este caso, el azúcar sintáctico de los métodos de extensión lo mantuvo SECO, y la implementación de una sola línea satisface a KISS.
He intentado crear un 'NumberFormatInfo', pero get 'Decimal separator no puede ser la cadena vacía'. Vergüenza. – Kobi
+1 para hacer una pregunta bien estructurada – hydrogen