Iphone 如何找出浮点的格式?
我正在使用其他人的代码,并且有一个具有一些不寻常特性的浮点 如果我使用以下命令输出浮点值:Iphone 如何找出浮点的格式?,iphone,objective-c,floating-point,Iphone,Objective C,Floating Point,我正在使用其他人的代码,并且有一个具有一些不寻常特性的浮点 如果我使用以下命令输出浮点值: NSLog(@"theFloat: %f", record.theFloat); 我得到: theFloat: 0.000000 (int)theFloat: 71411232 但是,如果我使用: NSLog(@"(int)theFloat = %i", (int) record.theFloat); 我得到: theFloat: 0.000000 (int)theFloat: 71411232
NSLog(@"theFloat: %f", record.theFloat);
我得到:
theFloat: 0.000000
(int)theFloat: 71411232
但是,如果我使用:
NSLog(@"(int)theFloat = %i", (int) record.theFloat);
我得到:
theFloat: 0.000000
(int)theFloat: 71411232
我怎样才能发现这个文件的真正格式和价值呢?我知道它应该包含一个大数字
顺便说一句,包含float的记录类以如下方式对其进行属性化:
@property (assign) float* theFloat;
还有一个浮动长度:
@property (assign) int floatLength;
并且有这种方法,这似乎表明浮点是可变长度(?):
内存中存储浮点的地址由以下公式给出:(int)theFloat:71411232 您可能希望使用以下内容:
NSLog(@"theFloat = %f", (*record.theFloat));
它将取消对指针的引用并提供实际数据。您的字段theFloat不是一个基元类型,而是一个指针。float*表示它是指向浮点的指针。您需要取消对该字段的引用以获取其值 使用*theFloat获取实际值 此外,我建议您检查格式说明符
内存中存储浮点的地址由以下公式给出:(int)theFloat:71411232A
float
定义良好,但您使用的是一个浮点数组,因此您的NSLog
调用只需打印数组的地址即可。记录的目的是什么?这是完全错误的。强制转换为int将把浮点截断为整数。在C++术语中,它是<代码>静态引用> <代码>,而不是<代码> RealTytCase。这只打印len
的第一个值。我觉得这有点苛刻。我在最后删除了旁白,但海报上说他在“一个浮点”上有问题,我只是拿了他打印单个值的代码,数组的地址,并添加了解引用,因为很明显他想打印值而不是地址。我会说最后的评论是错误的,大部分答案看起来都很好,当然如果他想让数组中的所有项都这样做。。。