#include <cmath>
#include <iostream>
typedef std::pair<int, int> SplitFloat;
SplitFloat Split(float value, int precision)
{
float left = std::floor(value);
float right = (value - left) * float(std::pow(10, precision));
return SplitFloat(left, right);
}
int main(int argc, char **argv)
{
SplitFloat a = Split(3.14, 2);
SplitFloat b = Split(0.666, 4);
std::cout << "Int part: " << a.first << '\n';
std::cout << "Decimal part: " << a.second << '\n';
std::cout << "Int part: " << b.first << '\n';
std::cout << "Decimal part: " << b.second << '\n';
return 0;
}
I2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8aW9zdHJlYW0+Cgp0eXBlZGVmIHN0ZDo6cGFpcjxpbnQsIGludD4gU3BsaXRGbG9hdDsKClNwbGl0RmxvYXQgU3BsaXQoZmxvYXQgdmFsdWUsIGludCBwcmVjaXNpb24pCnsKCWZsb2F0IGxlZnQgPSBzdGQ6OmZsb29yKHZhbHVlKTsKCWZsb2F0IHJpZ2h0ID0gKHZhbHVlIC0gbGVmdCkgKiBmbG9hdChzdGQ6OnBvdygxMCwgcHJlY2lzaW9uKSk7CgoJcmV0dXJuIFNwbGl0RmxvYXQobGVmdCwgcmlnaHQpOwp9CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCnsKCVNwbGl0RmxvYXQgYSA9IFNwbGl0KDMuMTQsIDIpOwoJU3BsaXRGbG9hdCBiID0gU3BsaXQoMC42NjYsIDQpOwoKCXN0ZDo6Y291dCA8PCAiSW50IHBhcnQ6ICIgPDwgYS5maXJzdCA8PCAnXG4nOwoJc3RkOjpjb3V0IDw8ICJEZWNpbWFsIHBhcnQ6ICIgPDwgYS5zZWNvbmQgPDwgJ1xuJzsKCXN0ZDo6Y291dCA8PCAiSW50IHBhcnQ6ICIgPDwgYi5maXJzdCA8PCAnXG4nOwoJc3RkOjpjb3V0IDw8ICJEZWNpbWFsIHBhcnQ6ICIgPDwgYi5zZWNvbmQgPDwgJ1xuJzsKCglyZXR1cm4gMDsKfQ==