我正在使用其他人的代码,并且有一些具有一些不寻常特性的浮动。
如果我使用:
输出浮动NSLog(@"theFloat: %f", record.theFloat);
我明白了:
theFloat: 0.000000
但是,如果我使用:
NSLog(@"(int)theFloat = %i", (int) record.theFloat);
我明白了:
(int)theFloat: 71411232
如何发现浮动的真实格式和价值?我知道它应该包含大量数字。
顺便说一句,包含浮点数的Record类以这样的方式对其进行置换:
@property (assign) float* theFloat;
还有floatLength:
@property (assign) int floatLength;
并且有这个方法,它似乎表明float的长度可变(?):
- (void) copyFloat:(float*)theF ofLength:(int)len
{
float *floatcopy = malloc(len*sizeof(float));
memcpy(floatcopy, theF, len*sizeof(float));
self.theFloat = floatcopy;
}
答案 0 :(得分:0)
你的字段theFloat不是原始类型而是指针。 float *表示它是指向float的指针。您需要取消引用该字段才能获得它的价值。
使用* theFloat获取实际值。
另外,我建议您查看格式说明符。
答案 1 :(得分:-1)
存储浮点数的内存中的地址由:(int)theFloat:71411232给出 你可能想要使用类似的东西:
NSLog(@"theFloat = %f", (*record.theFloat));
将取消引用指针并为您提供实际数据。