【发布时间】:2016-01-14 02:11:12
【问题描述】:
我想在文本字段中显示最多两位小数点的浮点数,就像在 ATM 机中输入的那样,以提取金额。比如,0.03。如果我输入一个新数字,比如 6,它会像 0.36 等等。 请建议我这样做的方法。谢谢
【问题讨论】:
标签: iphone uitextfield
我想在文本字段中显示最多两位小数点的浮点数,就像在 ATM 机中输入的那样,以提取金额。比如,0.03。如果我输入一个新数字,比如 6,它会像 0.36 等等。 请建议我这样做的方法。谢谢
【问题讨论】:
标签: iphone uitextfield
嘿,检查一下,就像 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
享受这段代码..
【讨论】:
NSNumberFormatter* decimalFormatter = [[NSNumberFormatter alloc] init];
[decimalFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[decimalFormatter setMaximumFractionDigits:2];
[decimalFormatter setMinimumFractionDigits:2];
NSString *enteredPrice=[decimalFormatter stringFromNumber:[NSNumber numberWithDouble:unitprice]];
您可以使用十进制格式化程序
【讨论】:
给你:
float yourFloat = 2.45678;
NSString *text = [NSString stringWithFormat:@"%.2f", yourFloat];
textField.text = text;
【讨论】:
我已经开源了 SATextField,它内置了这个功能。您需要将 fixedDecimalPoint 设置为 YES。
编辑:我创建了一个包含此功能的新项目:STAControls(具体来说,使用STAATMTextField -- 它甚至支持. 条目! )。不同之处在于,这个项目是作为UITextField 的合法子类实现的,而SATextField 只是一个包含UITextField 实例的容器类。
【讨论】: