Как сделать из десятичной дроби соответствующее целое число?
Мне дали задание найти разницу между сумами целой и дробной части действительного числа. Я смог с помощью оператора 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).