¿Cómo mostrar valores flotantes en el campo de texto en iphone?

Soy nuevo en iphone, tengo un campo de texto, cuando hago clic en el botón de número personalizado, el valor se imprimirá en el campo de texto, quiero ingresar el valor en un campo de texto, si ingreso un valor, el valor debe aparecer en el lado izquierdo del decimal punto, ¿cómo?

Ejemplo: 12345

Quiero esto 123.45

preguntado el 08 de noviembre de 11 a las 15:11

3 Respuestas

Tu pregunta no es un poco clara: ¿estás tratando de establecer el texto en un UITextField? Has probado:

[myTextField setText:[NSString stringWithFormat:@"%.2f", myFloat]];

Dónde myFloat es su variable de punto flotante. los %.2f la declaración dentro de la cadena se imprimirá myFloat a 2 lugares decimales.

Espero que esto sea lo que buscas.

respondido 08 nov., 11:19

Si está permitiendo que el usuario ingrese texto en un campo de texto y desea insertar un punto decimal, debe captar el UIControlEventEditingChanged evento en el campo de texto y utilícelo para reprocesar el texto. p.ej

[textField addTarget:self action:@selector(reprocessTextFieldText:) forControlEvents:UIControlEventEditingChanged];

...


-(void)reprocessTextFieldText:(UITextField *)sender
{
    // enforce rules on sender.text here.
}

Si desea eliminar explícitamente la capacidad del usuario para escribir cualquier cosa que no sean dígitos, es posible que también desee agregar un delegado a su UITextField e implementar textField:shouldChangeCharactersInRange:replacementString: apropiadamente.

respondido 08 nov., 11:19

Prueba esta

 - (void)viewDidLoad
{
[super viewDidLoad];
 enteredtext = @"0";
// Do any additional setup after loading the view from its nib.
}

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if([string isEqualToString:@"0.00"])
    enteredtext = @"0";
if(range.length==1)
{
    if(enteredtext.length>1)
        enteredtext = [[enteredtext substringWithRange:NSMakeRange(0,enteredtext.length-1)]retain];
}
else
{
    if(enteredtext.length<9)
        enteredtext = [[NSString stringWithFormat:@"%@%@",enteredtext,string]retain];;
}
double amountindecimal = [enteredtext floatValue];
double res=amountindecimal * pow(10, -2);
NSString * neededstring = [NSString stringWithFormat:@"%.2f",res];
if([neededstring isEqualToString:@"0.00"])
    enteredtext = @"0";;
textField.text = neededstring;
return NO;
}

contestado el 08 de mayo de 14 a las 09:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.