Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
5 / 5 / 4
Регистрация: 09.05.2010
Сообщений: 76
1

Откуда в float лишние цифры??

30.05.2011, 19:32. Показов 2772. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
вот тупой код и по логике должно вывести 1,4 (1 + 0,4) а выводит 1,40000000038212 (что то похожее)
вот код
C++
1
2
3
4
5
6
7
float a=StrToFloat(Edit1->Text),
 b=StrToFloat(Edit2->Text),
 h=StrToFloat(Edit3->Text);
 
float rez=a;
 
Label1->Caption=FloatToStr(rez+=h);
что не так.. ?
вот скрин во вложениях
Миниатюры
Откуда в float лишние цифры??  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.05.2011, 19:32
Ответы с готовыми решениями:

Откуда берутся лишние цифры в double?
У меня значения из примера выше близкие к правильным, но есть косяки - 1)в числе 3.12, откуда то...

Лишние цифры в остатке у типа float
Как убрать лишние цифры в остатке типа float, тип double использовать нельзя. c=a+b;

Откуда берутся лишние элементы?
String String::operator + (String right){ int len = strlen(this->myString) +...

Откуда-то появляются лишние теги <a>!
В коде имеем всего два тега - &lt;a href=&quot;1&quot;&gt;&lt;/a&gt; и &lt;a href=&quot;2&quot;&gt;&lt;/a&gt;, открываем этот код в...

5
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
30.05.2011, 19:37 2
C++
1
Label1->Caption=FormatFloat("#.#",rez+=h);
1
3 / 3 / 0
Регистрация: 22.02.2011
Сообщений: 46
05.07.2011, 19:26 3
Цитата Сообщение от PadON Посмотреть сообщение
вот тупой код и по логике должно вывести 1,4 (1 + 0,4) а выводит 1,40000000038212 (что то похожее)
вот код
C++
1
2
3
4
5
6
7
float a=StrToFloat(Edit1->Text),
 b=StrToFloat(Edit2->Text),
 h=StrToFloat(Edit3->Text);
 
float rez=a;
 
Label1->Caption=FloatToStr(rez+=h);
что не так.. ?
вот скрин во вложениях
Сам с таким столкнулся - решение - обьявление переменной типа double.
0
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
05.07.2011, 20:33 4
1.4d = 1.0(1100)b - бесконечная дробь.
float: 1.01100110011001100110011
Это получается 1.399999976158142.
Это если просто сразу 1.4, а если это результат вычислений, то там погрешности ещё накапливаются.
С double будет поточнее, но сама проблема всё равно остаётся.
0
3 / 3 / 0
Регистрация: 22.02.2011
Сообщений: 46
05.07.2011, 21:50 5
Цитата Сообщение от Somebody Посмотреть сообщение
1.4d = 1.0(1100)b - бесконечная дробь.
float: 1.01100110011001100110011
Это получается 1.399999976158142.
Это если просто сразу 1.4, а если это результат вычислений, то там погрешности ещё накапливаются.
С double будет поточнее, но сама проблема всё равно остаётся.
И как решается это все?
0
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
05.07.2011, 21:56 6
Цитата Сообщение от sergey.ivanov Посмотреть сообщение
И как решается это все?
Точность побольше (double) и округляй перед выводом - для бытовых нужд достаточно. Если очень нужно, можно найти или написать класс для чисел с произвольной точностью.
0
05.07.2011, 21:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.07.2011, 21:56
Помогаю со студенческими работами здесь

Не могу разобраться, откуда лишние значения
Начал писать программу и тут такая ошибка грешу на while (getline(fin, line)) но вроде норм поэтому...

Лишние символы берущиеся неведомо откуда
Суть в том, что ловлю ответ сервера на свой запрос. По снифферу как запрос, так и ответ нормальные,...

Откуда появляются лишние пробелы в конце строк?
Добрый день! подскажите плс, почему в конце каждой строки письма есть лишние пробелы, которые не...

Откуда берутся лишние файлы index.html
Здравствуйте! Проблема в том, что во всех папках сайта на joomla вдруг появляются файлы index.html...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru