我遇到了一个我想分享的 64 位处理器的错误。
CGFloat test1 = 0.58;
CGFloat test2 = 0.40;
CGFloat value;
value = fmaxf( test1, test2 );
结果将是:
值 = 0.5799999833106995
这显然是一个舍入问题,但如果您需要检查选择了哪个值,您会得到错误的结果。
if( test1 == value ){
// do something
}
但是,如果您使用 MIN( A, B ) 或 MAX( A, B ),它将按预期工作。
我认为这是值得分享
谢谢