KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I stumbled upon the following example on wikipedia ( http://en.wikipedia.org/wiki/Type_conversion#Implicit_type_conversion ). #include <stdio.h> int main() { int i_value = 16777217; float f_value = 16777217.0; printf("The integer is: %i\n", i_value); // 16777217 printf("The float is: %f\n", f_value); // 16777216.000000 printf("Their equality: %i\n", i_value == f_value); // result is 0 } Their explanation: "This odd behavior is caused by an implicit cast of i_value to float when it is compared with f_value; a cast which loses precision, making the values being compared different." Isn't this wrong? If i_value were cast to float, then both would have the same loss in precision and they would be equal. So i_value must be cast to double.
Tags (comma-separated)
Save Edits
Cancel