0

我知道 NSNumberFormatter 的 NSNumberFormatterSpellOutStyle,但这会返回格式错误的数字:932 返回“九百三十二”而不是“九百三十二”。

另一个问题中,Dave DeLong 说他为相同的代码得到了“932”,这正是我想要的——“and”这个词(或本地化时可能是什么)用于分隔大数。这可能吗?

4

1 回答 1

3

如果您只想添加“和”,我认为您必须手动执行(自您引用的问题得到回答后,行为发生了变化,或者是答案中的拼写错误)。我认为你可以这样做,但我不知道这是否适用于你想要的所有情况:

    int num = 932;
    int leftNum = floor(num/100) * 100;
    int rightNum = num % 100;
    NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
    [f setNumberStyle:NSNumberFormatterSpellOutStyle];
    NSString *combo;
    if (num > 100) {
        NSString *l = [f stringFromNumber:[NSNumber numberWithInt:leftNum]];
        NSString *r = [f stringFromNumber:[NSNumber numberWithInt:rightNum]];
        combo = [NSString stringWithFormat:@"%@ and %@",l,r];
    }else{
        combo = [f stringFromNumber:[NSNumber numberWithInt:num]];
    }
    NSLog(@"%@", combo);
于 2012-09-03T16:46:28.093 回答