Как сделать из десятичной дроби соответствующее целое число?

Мне дали задание найти разницу между сумами целой и дробной части действительного числа. Я смог с помощью оператора mod.f разделить число на целую и дробную часть. Для нахождения суммы использую следующий цикл:

a1:
    if (k != 0) {

        g = k % 10;
        f = g + f;
        k = k / 10;
        goto a1;
    }

С целой частью я справился, но для дробной части это не подходит по понятным причинам. Ну и вот суть проблемы: как мне превратить десятичную дробь в целое число без 0. ?


Ответы (1 шт):

Автор решения: Harry

Что-то типа

int s2i(string& s)
{
    if (auto p = s.find('.'); p != s.npos)
        s.erase(p,1);
    return stoi(s);
}

устроит? Защиту от дурака можно и дописать, как и для научной записи (эта функция не поймет что-то типа 1e3).

→ Ссылка