2013-03-30 47 views
3

出於某種原因,比較邏輯不能正常工作......它不會比較兩個NSDecimalNumber對象。有時它起作用,有時它不起作用。真奇怪。 if語句適用於某些彙編,有時不適用。這是做這件事的正確方法嗎?比較NSDecimalNumber不會工作?

的數據是從JSON文件,該文件是一個2點的十進制數,看起來像這樣:63.32

爲什麼沒有這方面的工作是否正確?

NSError * error; 
    NSDictionary * json = [NSJSONSerialization JSONObjectWithData:responceData options:kNilOptions error:error]; 
    NSArray * latestPrice = [json objectForKey:@"data"]; 
    NSLog(@"Latest price %@", latestPrice); 

    NSNumber * value = [(NSDictionary*)[latestPrice objectForKey:@"last_offer"] objectForKey:@"display"]; 

    NSString * val = [[NSString alloc] initWithFormat:@"%@", value]; 
    NSString * valFinal = [val stringByTrimmingCharactersInSet:[NSCharacterSet symbolCharacterSet]]; 
NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithString:valFinal]; 
    NSLog(@"%@", number); 
    NSString * val2 = [[NSString alloc] initWithString:@"44.14"]; 
    NSDecimalNumber *number2 = [NSDecimalNumber decimalNumberWithString:val2]; 
    if(number2 >= number){ 
    NSLog(@"ds"); 
    } 

我需要比較json值與具有相同小數點的本地值。

+1

一個NSDecimalNumber是一個對象。你在比較地址。閱讀該課程的規範,瞭解如何進行比較。 –

回答

5

NSDecimalNumber是一個對象。您試圖比較內存地址。
使用compare:NSDecimalNumber的實例方法。

if ([number compare:number2] == NSOrderedAscending) 

NSDecimalNumber Class Reference

+0

太棒了!非常感謝。 –