如何在iphone的textfield中显示浮点值?

时间:2011-11-08 15:17:08

标签: iphone floating-point uitextfield

我是iphone新手,我有一个文本字段,当我点击自定义数字按钮时,该值将在文本字段中打印,我想在textField中输入值,如果我输入一个值,该值应该到达左侧小数点,怎么样?

示例:12345

我想要这个 123.45

3 个答案:

答案 0 :(得分:1)

您的问题有点不清楚 - 您是否尝试在UITextField中设置文字?你试过了吗?

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

其中myFloat是您的浮点变量。字符串中的%.2f语句将myFloat打印到2位小数。

希望这就是你所追求的目标。

答案 1 :(得分:1)

如果您允许用户在文本字段中输入文本并且您想要插入小数点,那么您应该捕获文本字段上的UIControlEventEditingChanged事件并使用它来重新处理文本。 e.g。

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

...


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

如果您明确想要取消用户输入除数字以外的任何内容的功能,那么您可能还需要向UITextField添加委托并正确实施textField:shouldChangeCharactersInRange:replacementString:

答案 2 :(得分:0)

试试这个

 - (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;
}