#include <iostream>
#include <iomanip>
#include <limits>
#include <cmath>

template <typename T>
long long fractional(T val)
{
  T frac = val - std::floor(val);
  long long alldigits(std::pow(10, std::numeric_limits<T>::digits10)*frac);
  while (alldigits%10 == 0)
  {
    alldigits /= 10;
  }
  return alldigits;
}

int main()
{
  std::cout << fractional<float>(1.0/8.0)  << std::endl; // 125
  std::cout << fractional<float>(1.0/3.0)  << std::endl; // 333333
  std::cout << fractional<double>(1.0/3.0) << std::endl; // 333333333333333
  return 0;
}
