获取NSString的floatvalue时用逗号替换逗号

时间:2011-07-11 11:56:36

标签: objective-c nsstring floating-point

我希望用户能够在我的应用程序中为金额输入大于0的值。因此0,0或任何零表示都是不可接受的,但例如,0,1将被接受。

为了做到这一点,我计划得到NSString的浮点值并将其与0.0进行比较但这不起作用,因为我们的十进制数需要用逗号分隔,总是(由于业务需求)。如果逗号是点,则比较完成工作。

在我的金额文本中用点替换逗号的最佳方法是什么?

PS:对于小数部分,用户仅限于输入数字和一个逗号。 实际上我想知道这是否可以用数字格式化器来完成......

提前谢谢

4 个答案:

答案 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];