разделение числа с плавающей точкой
Я подаю число в консоле 1.2
Как результат я должен получить
1 2
Если я подам число 124.55874
То я получаю
124 55874
То есть моя задача выписывать целую часть цифр и часть с цифр после точки. И мой код работает, но если я подаю например число 12.12, то получаю:
12 1.2+e07
Из за чего такие результаты? Из-за неточного бинарного представления некоторых чисел?
double num, cN;
std::cout << "num = ";
std::cin >> num;
while (num != 0.0) {
std::cout << long (num) << "\t";
cN = long (num);
num = num - cN;
for (int i = 0; i < 4; i++) {
num = num * 100;
}
while (long (num) % 10 == 0) {
num = num / 10;
}
std::cout << num << "\n";
std::cout << "num = ";
std::cin >> num;
}