/*
 * "Floating point is strange" example 2.
 */
#include <stdio.h>

int main(void) {
	float small = .0000000001;
	float large = 1.0;
	int count = 1000;

	/* left to right */
	float sum1 = large;
	for (int i = 0; i < count; ++i) {
		sum1 += small;
	}

	/* right to left */
	float sum2 = 0;
	for (int i = 0; i < count; ++i) {
		sum2 += small;
	}
	sum2 += large;

	printf("sum1 %f sum2 %f equal? %c\n",
			sum1, sum2, (sum1 == sum2) ? 'y' : 'n');
	/* uncomment to show why output is not what you might think */
	/* printf("sum1 %.10f sum2 %.10f equal? %c\n",
			sum1, sum2, (sum1 == sum2) ? 'y' : 'n'); */

	return 0;
}