cout.setf(ios::fixed);
double d = 2147483648.77;
cout << d << endl;
cout << int(d) << endl; // ошибка -2147483648
cout << (int)d << endl; // ошибка -2147483648
cout << d - int(d) << endl; // вообще плохо: 4.29497e+9
double dd;
cout << modf(d, &dd) << endl; // правильно
cout << dd << endl; // правильно
числа с фиксированной запятой
ребят. не знаю синтаксиса и не могу понять как считывать отдельно целую и дробную части числа???
Например, можно использовать функцию modf.
a - int(a) - получишь дробную часть от числа а.
Цитата: Pelican
int(a) - возвратит целую часть от числа а.
a - int(a) - получишь дробную часть от числа а.
a - int(a) - получишь дробную часть от числа а.
Как говорят некоторые люди, это чревато трудно выявляемыми ошибками:
Код:
Хотя в большинстве приложений может и подойдут такие преобразования.
PS выпросил таки у кого-то немного репутации :) Буду гулять 3 дня :)
Цитата:
Хотя в большинстве приложений может и подойдут такие преобразования.
Например в таких, где обрабатываются числа менее 1 миллиарда.