Форум программистов, компьютерный форум, киберфорум
Наши страницы

Найти ошибочку. Нахождение суммы цифр вещественного числа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать класс Time для работы со временем http://www.cyberforum.ru/cpp-beginners/thread1202392.html
Нужно исправить ошибки в программе.Срочно. Создать класс Time для работы со временем в формате «час:минута:секунда». Класс должен включать в себя три конструктора инициализации: числами, ...
C++ Нарисовать круг и квадрат Нарисовать круг и квадрат!!!у меня имеется прямоугольник и овал,как переделать +++++++++++++++++++ class Rect:public Shape { public: void draw() { line(x1,y1,x2,y1); ... http://www.cyberforum.ru/cpp-beginners/thread1202372.html
Статические и виртуальные функции C++
Составить программу с одним родительским классом и двумя потомками. Все поля должны быть закрытыми. Потомки должны содержать виртуальные функции. Для родительского объекта создать статическую...
Сумма по модулю 256 C++
Обьясните в алгоритме ГОСТ 28147-89 В РЕЖИМЕ ГАММИРОВАНИЯ 32-х разрядный суматор по модулю 2^32 как это и помогите с реализацией
C++ Substr и рекурсия http://www.cyberforum.ru/cpp-beginners/thread1202334.html
Доброй ночи! void extract(string*, string&); int main() { string array; string test = "FOO bar,1444,63333,99222,100333"; int first = test.find(','); string data =...
C++ Нахождение наименьшего нечетного натурального делителя k (k≠1) любого заданного натурального числа n Помогите с этой задачой: Подпрограммы Составить функцию для нахождения наименьшего нечетного натурального делителя k (k≠1) любого заданного натурального числа n. Хотя бы подскажите идею для... подробнее

Показать сообщение отдельно
Kostia10
2 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 33

Найти ошибочку. Нахождение суммы цифр вещественного числа - C++

08.06.2014, 09:17. Просмотров 263. Ответов 1
Метки (Все метки)

Всем привет! Создал функцию нахождения суммы цифр вещественного числа. Функция практически работает, но, когда я кладу в переменную число н-р: "1.256" почему-то добавляются к числу девятки т.е. становится так: "1.2569999999"
b т.к. девятки тоже суммируются, ответ получается не верным.
Помогите, пожалуйста, как можно исправить это.
Код функции:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
int fun(double n)
{
    int t, p, sum1 = 0, sum2 = 0, sum = 0;
    double z, intptr;
    t = (int)n;
    z = n - t;
    while (t)
    {
        sum1 += t % 10;
        t /= 10;
    }
 
    while (modf(z, &intptr) != 0)
    {
        z *= 10;
    }
    p = (int)z;
    while (p)
    {
        sum2 += p % 10;
        p /= 10;
    }
    sum = sum1 + sum2;
 
    return sum;
}
Код ее использования:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<iostream>
#include<math.h>
using namespace std;
int main(void)
{
    float a;
    int t = 0, d;
    cout << Rus("Введите вещественное число:\n");
    cin >> a;
    d = fun(a);
    cout << Rus("Сумма цифр вещественного числа равна ") << abs(d) << "\n";
    return(0);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.