例如,对于原始的,我会这样做
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,因为我在这里处理货币。或者,如果我确实将它们转换为上述那些,有人可以验证/解释精度吗?