Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Yes. You can see the compatibility between 80-bit floating points (long double in C) and 64-bit integer (long long int) with a code like this:

  long double x0,x1,y0,y1;
  x0 = 18446744073709551615.0L; /* 2^64 - 1 */
  x1 = 18446744073709551616.0L; /* 2^64     */

  y0 = x0 + 1.0L;
  y1 = x1 + 1.0L;

  printf("%d\n", x0 == y0); /* false (with enough precision) */
  printf("%d\n", x1 == y1); /* true  (precision being lost ) */


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: