Как вывести только знаки после точки C?
Мне надо вывести знаки после точки, к примеру, с 2.6569 я должен вывести: 6569. Язык C.
Ответы (2 шт):
Автор решения: Павел Ериков
→ Ссылка
Если я правильно понял что вам нужно, то вот пример:
double num;
cin >> num;
//Избавляемся от целой части
double s = num - (int)num;
//Точность (цифр после точки)
int accuracy = 1e4;
//Результат
int res = s * accuracy;
cout << res << endl;
Но хочу заметить, что если вы введете 2.6569, то будет выведено 6568 т.к. в памяти число хранится 656899999992.
Можно рассчитывать результат таким образом:
int res = floor(s * accuracy + .5);
Автор решения: Bogdan
→ Ссылка
Если для C, то можно примерно так:
char buffer[256];
int i = 0;
// вводим число сразу в символьную строку
scanf("%s", buffer);
// пропускаем все символы до точки
while(buffer[i] != '.')
{
i++;
}
// выводим по смещению от точки
printf("%s", buffer + i + 1);
Вывод:
545123
P.S. по хорошему надо еще обработать ситуацию, когда число не содержит точку (например, было введено целое число).