Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
NAlt
0 / 0 / 0
Регистрация: 02.10.2014
Сообщений: 136
#1

Избавиться от погрешности в выделении дробной части - C++

18.11.2014, 20:55. Просмотров 388. Ответов 7
Метки нет (Все метки)

Нужно избавиться от погрешности в выделении дробной части
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
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
#include <math.h>
int main()
{
int x,n,summa1=0,b,c,summa2=0,t,e,u;
float l,p,r,y;
printf("Vvedite l :");
scanf("%f", &l );
p=(round(l));
t=(int)floor(p);
r=l-t;
y=r*10000;
 
e=(int)floor(p);
u=(int)floor(y);
printf("b = %d\n", e);
printf("r = %d\n", u);
{
 
x=e;
b=u;
for(n=1;x>9;n++)
{summa1+=x%10;
x/=10;
}
for(c=1;b>9;c++)
{summa2+=b%10;
b/=10;
}
summa1+=x;
printf("summa=%d\n",summa1);
summa2+=b;
printf("summa=%d\n",summa2);
return 0;
}
 
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2014, 20:55     Избавиться от погрешности в выделении дробной части
Посмотрите здесь:

C++ Рассмотрение дробной части чисел
C++ Вывод дробной и целой части
C++ Выделение дробной части из числа
C++ Вывод целой и дробной части
C++ Отброс дробной части
C++ Погрешность дробной части
Сумма цифр дробной части C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4917 / 4255 / 1425
Регистрация: 14.04.2014
Сообщений: 16,728
18.11.2014, 21:13     Избавиться от погрешности в выделении дробной части #2
Дробная часть - это u? Ну умножай на большее число в 12-й строке.
NAlt
0 / 0 / 0
Регистрация: 02.10.2014
Сообщений: 136
18.11.2014, 21:17  [ТС]     Избавиться от погрешности в выделении дробной части #3
nmcf, я пробовала не выходило
nmcf
4917 / 4255 / 1425
Регистрация: 14.04.2014
Сообщений: 16,728
18.11.2014, 21:21     Избавиться от погрешности в выделении дробной части #4
Числа у тебя большие? Пример.
Длина мантиссы ограничена, дальше будут просто нули. Попробуй вместо float использовать double.
NAlt
0 / 0 / 0
Регистрация: 02.10.2014
Сообщений: 136
18.11.2014, 21:25  [ТС]     Избавиться от погрешности в выделении дробной части #5
nmcf, пробовала использовать double
проблема осталась
ну к примеру ввожу 45.675
целое будет равно 46
а десятичная дробь =-3251
но это не во всех случаях такое происходит
nmcf
4917 / 4255 / 1425
Регистрация: 14.04.2014
Сообщений: 16,728
18.11.2014, 21:37     Избавиться от погрешности в выделении дробной части #6
Задачу опиши. Вводится число, что нужно получить?
ValeryS
Модератор
6505 / 4971 / 459
Регистрация: 14.02.2011
Сообщений: 16,471
18.11.2014, 21:44     Избавиться от погрешности в выделении дробной части #7
Цитата Сообщение от NAlt Посмотреть сообщение
ну к примеру ввожу 45.675
целое будет равно 46
а десятичная дробь =-3251
так так и будет
floor приводит по правилам математики а тебе нужно отбросить дробную часть
могу предложить такой вариант
C++
1
2
3
double a=12.34567
double b=(int)a;// приводим к int дробная часть отбрасывается
double c=a-b;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2014, 22:22     Избавиться от погрешности в выделении дробной части
Еще ссылки по теме:

C++ Округление дробной части
C++ Вывод дробной части
C++ Разделитель целой и дробной части
C++ Отделение целой части числа от дробной
Отделение дробной части от числа C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
NAlt
0 / 0 / 0
Регистрация: 02.10.2014
Сообщений: 136
18.11.2014, 22:22  [ТС]     Избавиться от погрешности в выделении дробной части #8
ValeryS, преподаватель сказал, чтобы я именно floor использовала, тогда значит и не надо что-либо менять?
а еще нужно выделить и целую часть
и суммы написать
Yandex
Объявления
18.11.2014, 22:22     Избавиться от погрешности в выделении дробной части
Ответ Создать тему
Опции темы

Текущее время: 00:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru