fork download
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <limits>
  4. #include <cmath>
  5.  
  6. template <typename T>
  7. long long fractional(T val)
  8. {
  9. T frac = val - std::floor(val);
  10. long long alldigits(std::pow(10, std::numeric_limits<T>::digits10)*frac);
  11. while (alldigits%10 == 0)
  12. {
  13. alldigits /= 10;
  14. }
  15. return alldigits;
  16. }
  17.  
  18. int main()
  19. {
  20. std::cout << fractional<float>(1.0/8.0) << std::endl; // 125
  21. std::cout << fractional<float>(1.0/3.0) << std::endl; // 333333
  22. std::cout << fractional<double>(1.0/3.0) << std::endl; // 333333333333333
  23. return 0;
  24. }
  25.  
Success #stdin #stdout 0s 3456KB
stdin
Standard input is empty
stdout
125
333333
333333333333333