Warum nicht gleich 0 CGLOAT_MIN ist, wennWarum 0 == CGFLOAT_MIN ist falsch?
My-Code
float minVar = CGFLOAT_MIN;
printf("CGFLOAT_MIN = %f\n\n", CGFLOAT_MIN);
printf("0 == CGFLOAT_MIN \t%s\n", (0) == CGFLOAT_MIN ? "true" : "false");
printf("0 == minVar \t%s\n", (0) == minVar ? "true" : "false");
printf("0 == 0.000000 \t%s\n", (0) == 0.000000 ? "true" : "false");
Der Ausgang ist
CGFLOAT_MIN = 0.000000
0 == CGFLOAT_MIN false
0 == minVar true
0 == 0.000000 true
Dokumentation: "Für 32-Bit-Code ist dieser Wert' 1.17549435e-38F'. Für 64-Bit-Code ist es '2.2250738585072014e-308'." – jtbandes
sollten Sie Gleitkommawerte selten genau vergleichen; Verwende ein Epsilon. –