3

我想在文本字段中显示浮点数,直到在 ATM 机中输入的小数点后两位以提取金额。比如,0.03。如果我输入一个新数字,比如 6,它会像 0.36 等等。请建议我这样做的方法。谢谢

4

4 回答 4

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

输出为:FullString 12349.87

享受这段代码..

于 2012-11-29T08:48:27.263 回答
1
     NSNumberFormatter* decimalFormatter = [[NSNumberFormatter alloc] init];
        [decimalFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
        [decimalFormatter setMaximumFractionDigits:2];
        [decimalFormatter setMinimumFractionDigits:2];
NSString *enteredPrice=[decimalFormatter stringFromNumber:[NSNumber numberWithDouble:unitprice]];

您可以使用十进制格式化程序

于 2012-11-29T08:20:36.563 回答
0

干得好:

float yourFloat = 2.45678;
NSString *text = [NSString stringWithFormat:@"%.2f", yourFloat];
textField.text = text;
于 2012-11-29T08:19:46.537 回答
0

我已经开源了内置此功能的SATextField 。您需要设置fixedDecimalPoint为“是”。

编辑:我创建了一个包含此功能的新项目:STAControls(特别是使用STAATMTextField——它甚至支持.输入!)。不同的是,这个项目已经作为一个合法的子类来实现,UITextFieldSATextField仅仅是一个包含UITextField实例的容器类。

于 2013-05-08T12:47:31.920 回答