我试过这个代码如下
这有助于我允许用户只输入数字和点(小数点)
但问题是用户可以在此方法中允许n个小数.
我想只允许一个小数
并且只有两位数后才会出现
喜欢123.00,123423432353.99 但不喜欢123.4.4,123.12345,123 ...... 23
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if (string.length == 0) {
return YES;
}
NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789."];
for (int i = 0; i < [string length]; i++) {
unichar c = [string characterAtIndex:i];
if ([myCharSet characterIsMember:c]) {
return YES;
}
}
UIAlertView *av = [[UIAlertView alloc] initWithTitle:nil message:@"Invalid input" delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[av show];
return NO;
}
Run Code Online (Sandbox Code Playgroud)
如何允许用户只输入一个十进制文本字段,该字段也只允许小数点后的两位数
提前致谢
我已经四处寻找这个,但似乎仍无法让它发挥作用.我有一个简单的iOS程序,带有UITextField,可以将Farenheit转换为Celsius和Kelvin.我试图在这个UITextField中只限制1个小数.例如98.9是可以的但98..9不是.
这是我想要限制只有1位小数的函数.我想要的是如果输入1个小数,那么它将不允许输入另一个1,但是当然在第一个小数后仍然可以输入数字.
func farenheitButton(sender: AnyObject)
{
var fVal = self.farenheitTextLabel.text
var cVal = self.celsiusTextLabel.text
var kVal = self.kelvinTextLabel.text
if let fVal = self.farenheitTextLabel.text?.toDouble()
{
var fValx = self.farenheitTextLabel.text
var fDoubleValue : Double = NSString (string: fValx).doubleValue
var fToC = (fDoubleValue - 32) * (5/9) //convert Farenheit to Celsius formula
var fToK = ((fDoubleValue - 32) / (1.8000)) + 273.15 //convert Farenheit to Kelvin formula
//create string from value with a format
var afToC : Double = fToC
var bfToC : …Run Code Online (Sandbox Code Playgroud)