1
这里是我的代码:UIView的帧起点没有设置好
frame = _pageContentView.frame;
NSLog(@"%f; %f; %f; %f;", frame.origin.x, frame.origin.y, frame.size.width, frame.size.height);
frame.size.height = pageContentView.frame.size.height;
NSLog(@"%f; %f; %f; %f;", frame.origin.x, frame.origin.y, frame.size.width, frame.size.height);
_pageContentView.frame = frame;
NSLog(@"%f; %f; %f; %f;", _pageContentView.frame.origin.x, _pageContentView.frame.origin.y, _pageContentView.frame.size.width, _pageContentView.frame.size.height);
而且NSLog的输出这些值:
0.000000; 0.000000; 317.648956; 0.000000;
0.000000; 0.000000; 317.648956; 768.000000;
0.000007; 0.000004; 317.648956; 768.000000;
你能看到吗?在最后一行中,x和y坐标有点疯狂......这些数字在哪里出现?这里有什么问题?
但是,算什么? – 2010-04-27 12:11:12
谁知道?谁在乎?它可能就像从双重到浮动来回分流的东西一样简单;或者在FPU中以前的迭代中留下的残余物。这种差异是完全无关的,应该忽略。 (0.000007代表0.0007%,或像素的十万分之七十;也就是说,例如35纳米)。 – 2010-04-27 12:28:39
电脑无法做到真正的数学。由于计算机在处理数学时必须做出妥协,尤其是在无理数的情况下,所有浮点数都具有可变性。关于这个问题有一篇着名的论文。 http://docs.sun.com/source/806-3568/ncg_goldberg.html – TechZen 2010-04-27 16:04:47