Floats are an approximation. Because of the way they are encoded, they cannot be exact.
#include <stdio.h> int main( void ) { float candy_price = 0.20; int dozen = 12; float total = dozen * candy_price; printf( "%d candies at %3.2f each = %3.2f\n", dozen, candy_price, total ); if ( total == 2.40 ) { puts( "You spent exactly 2.40" ); } else { puts( "Strange, you didn't spend 2.40" ); } return 0; }
12 candies at 0.20 each = 2.40 Strange, you didn't spend 2.40TOC | Prev | Next