No puedo creer que todas estas respuestas y nadie ha mencionado esto, cambiar el código para
clntMailBody = clntMailBody + "Order Total: " + String.Format("{0:C}", strOrderTotal) + "\n";
Y ver si se soluciona el problema, sin embargo una mejor manera de hacerlo sería
clntMailBody = String.Format("{0}Order Total: {1:C}\n", clntMailBody, strOrderTotal);
es mucho es más fácil ver qué está sucediendo y elimina una gran cantidad de concatenación de cadenas.
Si usted está dispuesto a hacer un poco más re-escribir una aún mejor solución es: (he hecho un poco de lógica para mostrar mi ejemplo)
StringBuilder clntMailBody = new StringBuilder();
clntMailBody.AppendLine("Some Fixed body Text")
foreach(string lineItem in Invoice)
{
clntMailBody.AppendLine(lineItem);
}
clntMailBody.AppendFormat("Order Total {0:C}", strOrderTotal).AppendLine();
return clntMailBody.ToString();
Porque está formateando una cadena. Incluso si 'strOrderTotal' es' decimal', tu '+" \ n "' lo fuerza a una 'cadena'. – dasblinkenlight
Sí, estabas todo correcto. ¡Muchas gracias! – Kolten