NSNumberFormatter统治领先的0

时间:2015-10-30 04:45:18

标签: ios objective-c locale nsnumberformatter

我编写了一个将数字从阿拉伯数字转换为数字的函数。我已经使用了NSNumberFormatter。但问题是数字caqn从零开始,NSNumberFormatter截断前导零。我需要这个值,因为我必须进行比较。该数字可能不会始终为零。所以我不能提出任何其他条件。如果有人有解决方案,请求帮助我。谢谢。

我的代码是:

-(NSString*)convertNumberFromArabic:(NSString*)numberToConvert{
    NSNumberFormatter *nf1 = [[NSNumberFormatter alloc] init];
    NSLocale *locale = [NSLocale localeWithLocaleIdentifier:@"en"];
    [nf1 setLocale:locale];

    NSNumber *newNum = [nf1 numberFromString:numberToConvert];

    NSString *reverseConvert = [nf1 stringFromNumber:newNum];

    return reverseConvert;
}

1 个答案:

答案 0 :(得分:0)

你的问题有点令人困惑。您说您希望"将数字阿拉伯数字转换为数字",但您的方法名称是阿拉伯语。我编写了从阿拉伯语转换为拉丁语的方法。如果您想采用其他方法,只需将YES更改为NO

以下是代码:

-(NSString*)convertArabicDigitsToLatin:(NSString*)numberToConvert{
    NSMutableString* result = [numberToConvert mutableCopy];
    CFRange range = CFRangeMake(0, result.length);
    CFStringTransform((__bridge CFMutableStringRef)result, &range, kCFStringTransformLatinArabic, YES);
    return result;
}

这并不是将字符串解释为数字,只是将阿拉伯数字音译为字符串字符为拉丁数字。