fork(1) download
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4.  
  5. int main() {
  6. long double x = 18446744073709551616.0L;
  7.  
  8. long double badFractional1 = x - (int)x;
  9. long double badFractional2 = x - (long long)x;
  10. long double badFractional3 = x - (unsigned long long)x;
  11.  
  12. long double integral, goodFractional = modf(x, &integral);
  13.  
  14. cout << "Value: " << x << endl;
  15. cout << "Bad1: " << badFractional1 << endl;
  16. cout << "Bad2: " << badFractional2 << endl;
  17. cout << "Bad3: " << badFractional3 << endl;
  18. cout << "Good: " << goodFractional << endl;
  19. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
Value: 1.84467e+19
Bad1: 1.84467e+19
Bad2: 9.22337e+18
Bad3: 1
Good: 0