debería haber mencionado que yo soy pasar la máscara a una tercera parte componente que hace su cosa con ella. No puedo realizar ninguna acrobacia con los números desafortunadamente. Tiene para ser la máscara que hace el truco.
así que supongo que le pegan con Float.ToString(String)
, y que sólo no puede editar el p1
en f.ToString("p1")
. Ahora que es complicado. Si no tiene miedo de romper algo relacionado con los cambios implicados, puede hacer lo siguiente:
El formato numérico "P", como se documenta On MSDN, usa NumericFormatInfo.PercentSymbol
para escribir el signo "%". NumericFormatInfo
es un miembro de su actual CultureInfo
. Lo que podría hacer, es clonar su CurrentCulture
, y modificar el PercentSymbol a ""
como la siguiente:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
float f = 0.479f;
Console.WriteLine(f.ToString("p1")); //will write 47.9%
CultureInfo ci = CultureInfo.CurrentCulture.Clone() as CultureInfo;
ci.NumberFormat.PercentSymbol = "";
System.Threading.Thread.CurrentThread.CurrentCulture = ci;
Console.WriteLine(f.ToString("p1")); //will write 47.9
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
Este sería el camino a seguir si no desea alterar la llamada ToString.
¿Qué hace su 3er componente con una cadena formateada? ¿limita tu longitud de texto formateada? –
@Rubens Porque simplemente proporciona una propiedad .FormatString que toma esta máscara. Todo el formateo se realiza por el control de terceros. – AngryHacker
¿Puedes crear un nuevo NumberInfoFormat? Si es así, verifique mi publicación editada. – keyboardP