He visto en Internet formatear un valor doble NEGATIVO con un paréntesis CON un símbolo $
, es decir. tipo de cambio monetario.
Busco a una cadena de formato .NET, para dar formato a
12345.67 = 12,345.67
-12345.67 = (12,345.67)
He visto en Internet formatear un valor doble NEGATIVO con un paréntesis CON un símbolo $
, es decir. tipo de cambio monetario.
Busco a una cadena de formato .NET, para dar formato a
12345.67 = 12,345.67
-12345.67 = (12,345.67)
Puede utilizar la función FormatNumber:
FormatNumber(-100, UseParensForNegativeNumbers:=TriState.True)
volverá "(100)"
Hay más en MSDN
Esto se encuentra en el espacio de nombres Microsoft.VisualBasic, por lo que para usarlo en C# primero debe agregar una referencia a Microsoft.VisualBasic. –
¡Gracias Jon! ¡Aprecia tu respuesta rápida! – user715993
Otra razón (como si necesitara más) por qué VB gobierna :-) Se las arregló para agregar una línea de código y una casilla de verificación para ejecutar informes ya sea con un signo menos o entre paréntesis – gchq
¡MSDN en conditional formatting al rescate!
Puede especificar hasta tres secciones diferentes de su cadena de formato a la vez, separándolas con punto y coma. Si especifica dos secciones de cadena de formato, la primera se usa para valores positivos y cero, mientras que la segunda se usa para valores negativos; si usa tres secciones, la primera se usa para valores positivos, la segunda para valores negativos y la tercera para valores cero.
La salida de este código C#:
string fmt1 = "#,##0.00";
string fmt2 = "#,##0.00;(#,##0.00)";
double posAmount = 12345.67;
double negAmount = -12345.67;
Console.WriteLine("posAmount.ToString(fmt1) returns " + posAmount.ToString(fmt1));
Console.WriteLine("negAmount.ToString(fmt1) returns " + negAmount.ToString(fmt1));
Console.WriteLine("posAmount.ToString(fmt2) returns " + posAmount.ToString(fmt2));
Console.WriteLine("negAmount.ToString(fmt2) returns " + negAmount.ToString(fmt2));
es:
posAmount.ToString(fmt1) returns 12,345.67
negAmount.ToString(fmt1) returns -12,345.67
posAmount.ToString(fmt2) returns 12,345.67
negAmount.ToString(fmt2) returns (12,345.67)
VB.NET o C#? Título y etiquetas no están de acuerdo. – Oded