【问题标题】:Text field decimal entry format文本字段十进制输入格式
【发布时间】:2016-01-14 02:11:12
【问题描述】:

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

【问题讨论】:

    标签: iphone uitextfield


    【解决方案1】:

    嘿,检查一下,就像 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

    享受这段代码..

    【讨论】:

    • 感谢您的代码,但我必须在文本字段中输入数字并显示。有什么替代方案?
    • 好的,如果我得到它,我会根据您的要求开发代码,然后我会发布代码
    • 感谢 paras 的努力。
    【解决方案2】:
         NSNumberFormatter* decimalFormatter = [[NSNumberFormatter alloc] init];
            [decimalFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
            [decimalFormatter setMaximumFractionDigits:2];
            [decimalFormatter setMinimumFractionDigits:2];
    NSString *enteredPrice=[decimalFormatter stringFromNumber:[NSNumber numberWithDouble:unitprice]];
    

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

    【讨论】:

    • 我在哪里使用这个,我的意思是我可以使用 UITextfield 的哪个委托方法。因为我必须在文本字段中显示输入的数字。
    • - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
    • 你能帮我写一个代码吗,上面的方法可以从最右边输入0.00格式的字符?
    【解决方案3】:

    给你:

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

    【讨论】:

    • 感谢您的帮助,但不是我想要的。
    【解决方案4】:

    我已经开源了 SATextField,它内置了这个功能。您需要将 fixedDecimalPoint 设置为 YES。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-13
      • 1970-01-01
      • 1970-01-01
      • 2020-03-28
      • 1970-01-01
      • 2020-11-19
      • 1970-01-01
      相关资源
      最近更新 更多