文本字段小数输入格式

时间:2012-11-29 08:16:11

标签: iphone uitextfield

我想在文本字段中显示浮点数字,最多两个小数点,如在ATM机器中输入的那样。比如,0.03。如果我输入一个新的数字说6,那就像是0.36等等。 请建议我这样做的方法。感谢

4 个答案:

答案 0 :(得分:2)

嘿,检查这就像ATM功能...

    NSString *str = @"1234987";
    NSUInteger len = str.length;
    if (len>0) {
        if (len==1) {
            str = [NSString stringWithFormat:@"0.0%@",str];
            NSLog(@"%@",str);
        }
        else if (len==2) {

            str = [NSString stringWithFormat:@"0.%@",str];
            NSLog(@"%@",str);
        }
        else {
            NSString  *pointstr = [str substringWithRange:NSMakeRange(len - 2,2)];
            NSString *Bstr = [str substringWithRange:NSMakeRange(0,len-2)];
            str = [NSString stringWithFormat:@"%@.%@",Bstr,pointstr];
            NSLog(@"\n\n FullString %@",str);
        }
    }
    else{
          str = @"0.0";
    }

OutPut是:FullString 12349.87

享受此代码..

答案 1 :(得分:1)

     NSNumberFormatter* decimalFormatter = [[NSNumberFormatter alloc] init];
        [decimalFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
        [decimalFormatter setMaximumFractionDigits:2];
        [decimalFormatter setMinimumFractionDigits:2];
NSString *enteredPrice=[decimalFormatter stringFromNumber:[NSNumber numberWithDouble:unitprice]];

您可以使用小数格式化程序

答案 2 :(得分:0)

你走了:

float yourFloat = 2.45678;
NSString *text = [NSString stringWithFormat:@"%.2f", yourFloat];
textField.text = text;

答案 3 :(得分:0)

我的开源SATextField内置了此功能。您需要将fixedDecimalPoint设置为YES。

编辑:我创建了一个包含此功能的新项目:STAControls(具体来说,使用STAATMTextField - 它甚至支持.入门!的)。不同之处在于,此项目已作为UITextField的合法子类实现,而SATextField仅仅是容纳UITextField实例的容器类。