enough precision in double. Make it select double, long double or skip the test at runtime, depending on sizeof() results.