Objective C将float转换为integer会产生奇怪的结果

时间:2013-05-21 00:52:35

标签: ios objective-c ios6

我有浮点数,其值为30,我从核心数据中得到。

当我使用NSLog打印值时,我得到30。

NSLog(@"The value of float temp is %@", [self.detailItem valueForKey:@"credit"]);

当我通过将float转换为int来打印值时,每次打印日志时都会得到奇怪的数字和不同的结果:

NSLog(@"The value of float temp is %d", (int)[self.detailItem valueForKey:@"credit"]);

137978864
122273424

2 个答案:

答案 0 :(得分:2)

试试这个

NSLog(@"The value of float temp is %d", [[self.detailItem valueForKey:@"credit"] intValue]);

答案 1 :(得分:1)

valueForKey返回一个对象。 Coredata存储NSNumber和NSString等对象。你通过使用intValue来转换它们。尝试:

NSLog(@"The value of float temp is %d", [[self.detailItem valueForKey:@"credit"] intValue]);