Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
Cend
2 / 2 / 0
Регистрация: 25.02.2013
Сообщений: 114
#1

Тип данных float

23.06.2013, 14:44. Просмотров 2357. Ответов 13
Метки нет (Все метки)

1) Какое масимальное целое может содержать float?
2) Точность дробной части у float постоянна, или зафисит от целой части?
Буду благодарен за прямые ответы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2013, 14:44
Ответы с готовыми решениями:

Тип данных float
Подскажите в каких случаях используют тип данных float. Гугл ничего не дал,...

Какой тип данных лучше подойдет для приложения, которое делит числа int или float?
Ответ написал int Хотя нутром чую, что float

Тип float в массиве
Доброго времени суток! Объявил float a ; Но при выводе консоль выводит...

Тип памяти переменной float
Доброго время суток всем! помоги найти ответ на вопрос, что за тип памяти...

Тип float нельзя сдвигать?
Пытаюсь сделать так: float data; ... f.open("primerus_bit.txt",...

13
castaway
Эксперт С++
4929 / 3036 / 453
Регистрация: 10.11.2010
Сообщений: 11,116
Записей в блоге: 10
Завершенные тесты: 1
23.06.2013, 14:56 #2
1.
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <iomanip>
#include <limits>
 
using namespace std;
 
int main()
{
    cout << setprecision( 50 ) << numeric_limits<float>::max() << endl;
    return 0;
}
Добавлено через 1 минуту
2.:
Цитата Сообщение от Cend Посмотреть сообщение
или зафисит от целой части?
0
vua72
417 / 417 / 166
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
23.06.2013, 15:08 #3
1. float не содержит целых чисел
2. постоянна, 6-7 десятичных разрядов.
0
Kuzia domovenok
2261 / 2030 / 459
Регистрация: 25.03.2012
Сообщений: 7,177
Записей в блоге: 1
23.06.2013, 15:22 #4
Цитата Сообщение от vua72 Посмотреть сообщение
2. постоянна, 6-7 десятичных разрядов.
не говори так никому больше
1
Cend
2 / 2 / 0
Регистрация: 25.02.2013
Сообщений: 114
23.06.2013, 15:22  [ТС] #5
lazybiz, пробовал вручную инкрементировать, у меня выводится чушь, значение уходит за пределы uint32_t, не знаю почему...
Цитата Сообщение от vua72 Посмотреть сообщение
1. float не содержит целых чисел.
Ну как не содержит?
C++
1
float a = 26.0;
Вот a содержит целое число 26.
C++
1
float a = 26.11;
a содержит 26 целых, 11 сотых.
И всётаки, какова максимальная величина целой части, которую можно поместить во float?
И насчет точности я не понял. vua72, ваш ответ противоречит ответу lazybiz
0
castaway
Эксперт С++
4929 / 3036 / 453
Регистрация: 10.11.2010
Сообщений: 11,116
Записей в блоге: 10
Завершенные тесты: 1
23.06.2013, 15:27 #6
Цитата Сообщение от vua72 Посмотреть сообщение
2. постоянна, 6-7 десятичных разрядов.
Сама формулировка "floating point" говорит о том что точка "плавает", т.е. дробная часть всегда зависит от целой, тип float в современных ПК имеет размер 32 бита в которые помещается мантисса и экспонента, и вот эта самая экспонента и "разделяет" мантиссу на целую и дробную части. Исходя из этого можно легко понять что дробная часть зависит от целой.

Добавлено через 1 минуту
Цитата Сообщение от Cend Посмотреть сообщение
И насчет точности я не понял. vua72, ваш ответ противоречит ответу lazybiz
Верь мне. У меня больше опыта.
2
Cend
2 / 2 / 0
Регистрация: 25.02.2013
Сообщений: 114
23.06.2013, 15:31  [ТС] #7
Цитата Сообщение от lazybiz Посмотреть сообщение
Верь мне. У меня больше опыта.

Остался вопрос про максимальное значение целой части
0
castaway
Эксперт С++
4929 / 3036 / 453
Регистрация: 10.11.2010
Сообщений: 11,116
Записей в блоге: 10
Завершенные тесты: 1
23.06.2013, 15:32 #8
Цитата Сообщение от Cend Посмотреть сообщение
lazybiz, пробовал вручную инкрементировать, у меня выводится чушь, значение уходит за пределы uint32_t, не знаю почему...
Кого инкрементировать? Куда инкрементировать?
0
Cend
2 / 2 / 0
Регистрация: 25.02.2013
Сообщений: 114
23.06.2013, 15:38  [ТС] #9
У меня выводит:
340282346638528859811704183484516925440
Максимальное значение целого 32-битного числа 4294967296
0
castaway
Эксперт С++
4929 / 3036 / 453
Регистрация: 10.11.2010
Сообщений: 11,116
Записей в блоге: 10
Завершенные тесты: 1
23.06.2013, 15:40 #10
@Cend, все верно у тебя выводит. Почитай про представление вещественных чисел в ПК.
0
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
23.06.2013, 15:42 #11
Цитата Сообщение от Cend Посмотреть сообщение
У меня выводит:
это совсем не значит, что вы можете хранить все целые числа в диапазоне от 0 до этого числа, здесь все не так, как с целыми числами
1
castaway
Эксперт С++
4929 / 3036 / 453
Регистрация: 10.11.2010
Сообщений: 11,116
Записей в блоге: 10
Завершенные тесты: 1
23.06.2013, 15:44 #12
Вкратце: число = мантисса * 10X, например: 1 * 1010 = 10000000000. Вещественному числу необходимо хранить в себе 1 и 10 (степень), а они легко помещаются в 32 бита.
1
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
23.06.2013, 15:56 #13
вроде максимальное целое число в типе float
http://www.cyberforum.ru/cgi-bin/latex.cgi?3.402823466... *10^{38}
но от 0 до этого числа очень много целых чисел, которые float хранить не может по определению

Добавлено через 3 минуты
вроде его то вы и получили
0
vua72
417 / 417 / 166
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
25.06.2013, 13:49 #14
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
не говори так никому больше
ну ладно, 7 десятичных разрядов, точнее 7.2 десятичных разрядов
Верь мне. У меня больше опыта.
Точность ну никак не зависит от целой части, а определяется форматом хранения, т.в. для 32 разрядного флоата, эта точность и составляет 7 десятичных разрядов.
lazybiz, пробовал вручную инкрементировать, у меня выводится чушь, значение уходит за пределы uint32_t, не знаю почему...
Сообщение от vua72
1. float не содержит целых чисел.
Ну как не содержит? Код C++
1 float a = 26.0;


Вот a содержит целое число 26. Код C++
1 float a = 26.11;


a содержит 26 целых, 11 сотых.
И всётаки, какова максимальная величина целой части, которую можно поместить во float?
И насчет точности я не понял. vua72, ваш ответ противоречит ответу lazybiz
это целая часть числа, а не целое число, float a = 26.0 - скорее будет представлено как 25.9999999.

И вообще стоило бы уточнить о чем идет речь, если об относительной погрешности представления числа, то она одинакова. Если речь идет о точности - погрешности конкретных вычислений, то там есть много факторов, влияющих на них.
Я думаю опыт тут ни причем.
0
25.06.2013, 13:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2013, 13:49

Почему 5/9=0, если тип float?
Объектно-ориентированное программирование в С++ Лафоре Р. 3 глава, упрожнение...

Преобразование типа char в тип float
При считывании из файла чисел (каждое число расположено на новой строке, целая...

Изменить тип массива с int на float
Какие строки необходимо исправить, чтобы изменить тип массива? #include...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru