Различные способы сравнения NSDecimalNumber

Например, с примитивом я сделаю это

if ( (x >= 6000) && (x <= 20000) )
    // do something here 

] и с NSDecimalNumber, это то, что у меня есть

if ( (([x compare:[NSNumber numberWithInt:6000]] == NSOrderedSame) || 
        ([x compare:[NSNumber numberWithInt:6000]] == NSOrderedDescending))
    && (([x compare:[NSNumber numberWithInt:20000]] == NSOrderedSame) || 
        ([x compare:[NSNumber numberWithInt:6000]] == NSOrderedAscending)) )
{
    // do something here
}

Есть ли другие способы ( проще и элегантнее) к этому сравнению? Если я конвертирую значение в примитив, какой примитив я использую? Я не хочу использовать CGFloat, float или double, поскольку здесь я обрабатываю валюту. Или, если я конвертирую их к упомянутым выше, может ли кто-нибудь проверить / объяснить точность?

15
задан X Slash 27 January 2012 в 06:44
поделиться