RubyやPythonでは、 (またはそのような)2.0
として出力される場合がありました。1.99999999999
浮動小数点の不正確さであると言われています。
Objective-Cでは、これまでのところ発生していません... Objective-Cは浮動小数点エラーをはるかにうまく処理しますか?
その理由は、そのような電話があった場合、次のようになります。
CGContextRef context = CGBitmapContextCreate(NULL,
size.width * scaleFactor, size.height * scaleFactor,
8, size.width * scaleFactor * 4, colorSpace,
kCGImageAlphaPremultipliedFirst);
およびがfloatまたはscaleFactor
double(通常はまたはの値を持つ)である場合、整数に変換した後に発生する浮動小数点エラーがある場合は、問題になる可能性があります。それがbitmapContextのサイズである場合、1ピクセル幅が狭くても大した問題ではないため、問題は少なくなりますが、に提供されるデータバッファーのサイズである場合、に変換された場合のサイズは、悪いメモリアクセス(セグメンテーション違反またはデータ汚染)を引き起こす可能性があるため、問題になる可能性があります。1.0
2.0
1536.0
1535
malloc
123456.0
123455