我希望用户能够在我的应用程序中为金额输入大于0的值。因此0,0或任何零表示都是不可接受的,但例如,0,1将被接受。
为了做到这一点,我计划得到NSString的浮点值并将其与0.0进行比较但这不起作用,因为我们的十进制数需要用逗号分隔,总是(由于业务需求)。如果逗号是点,则比较完成工作。
在我的金额文本中用点替换逗号的最佳方法是什么?
PS:对于小数部分,用户仅限于输入数字和一个逗号。 实际上我想知道这是否可以用数字格式化器来完成......
提前谢谢
答案 0 :(得分:20)
您可以使用stringByReplacingOccurrencesOfString
NSString *newString = [ammount stringByReplacingOccurrencesOfString:@"," withString:@"."];
答案 1 :(得分:4)
您可以使用NSString+JavaAPI类别,然后执行:
NSString* newString = [myString replace: @"," withString: @"."];
当然,如果用户碰巧输入1,000,00
等内容,这可能无济于事。
答案 2 :(得分:2)
这是一种使用NSScanner
的简洁方法:
NSScanner *scanner = [NSScanner localizedScannerWithString:theInputString];
float result;
[scanner scanFloat:&result];
答案 3 :(得分:0)
Apple建议使用NSScanner。 这是我使用的代码:
NSScanner *scanner;
NSLocale *local =[NSLocale currentLocale ];
[scanner setLocale:local];
float result;
scanner = [NSScanner localizedScannerWithString:<YOUR NSString>];
[scanner scanFloat:&result];