Esto debería ser un problema fácil, pero ...formato de moneda
que necesito para dar formato a una moneda para su visualización (cadena) en C#
La moneda en cuestión tendrá sus propias reglas, tales como el símbolo de utilizar y si ese símbolo debe venir antes del valor (por ejemplo, $ 10) o después (por ejemplo, 10 ₫ que es Dong vietnamita).
Pero la forma en que se formatean los números depende de los usuarios locales, no de la moneda.
E.g.
1.234,56 ₫ should be displayed to a user in Vietnam but
1,234.56 ₫ should be displayed to a user in the US
(con formato de código de manera fácil ver la diferencia entre, y.)
Así código como
Double vietnamTotal = 1234.56;
return vietnamTotal.ToString("c");
no funcionará, ya que utilizará los usuarios (o más accuratly CultureInfo.CurrentCulture) configuración regional para el formato y la moneda para que pueda obtener cosas como $ 1,123.56 - uso correcto de, y. pero símbolo equivocado
Double vietnamTotal = 1234.56;
CultureInfo ci = new CultureInfo(1066); // Vietnam
return vietnameTotal.ToString("c",ci));
daría 1.234,56 ₫ - Símbolo correcto, mal uso de, y. para el usuario actual.
Este post gives more detail sobre qué hacer, pero no cómo hacerlo.
¿Qué método obvio oculto en el marco me falta?
Casi Jon, gracias - sin embargo, no consigue la posición del símbolo de moneda correcta (por ejemplo, Vietnam o España colocar el símbolo de moneda después del valor) se podría argumentar que la posición depende de la cultura de los usuarios (como separato decimal r) pero productos como Excel y SharePoint hacen la posición en función de la cultura de la moneda. – Ryan
De acuerdo, arreglando eso entonces ... –
Hecho - es posible que desee ver las otras propiedades relacionadas con la moneda, aunque parece que no quiere cambiar el tamaño de la agrupación o los símbolos. –