Как вывести только знаки после точки 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. по хорошему надо еще обработать ситуацию, когда число не содержит точку (например, было введено целое число).

→ Ссылка