Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
 тип float  [new]
andron81
Member

Откуда: Смоленск
Сообщений: 834
всем доброго времени суток.

вопрос в следующем.
вот хочу объявить переменную типа float и сразу присвоить ей значение.
делаю так:
float v=0.1f;



но трактуется она почему-то 0.100000001
А почему так выходит и можно ли сделать чтобы трактовалось как мне надо, а именно 0.100000000 ?

Сообщение было отредактировано: 30 апр 20, 22:19
30 апр 20, 22:20    [22125992]     Ответить | Цитировать Сообщить модератору
 Re: тип float  [new]
miksoft
Member

Откуда:
Сообщений: 38323
andron81,

Баян жуткий!

https://www.sql.ru/forum/758492/faq-tipy-dannyh-float-i-double-neochevidnye-osobennosti-veshhestvennyh-chisel и далее по ссылкам.
30 апр 20, 22:34    [22125995]     Ответить | Цитировать Сообщить модератору
 Re: тип float  [new]
andron81
Member

Откуда: Смоленск
Сообщений: 834
miksoft
andron81,

Баян жуткий!

https://www.sql.ru/forum/758492/faq-tipy-dannyh-float-i-double-neochevidnye-osobennosti-veshhestvennyh-chisel и далее по ссылкам.


конечно жуткий. я понимаю вопрос достойный чайника.

Сообщение было отредактировано: 30 апр 20, 22:38
30 апр 20, 22:39    [22125996]     Ответить | Цитировать Сообщить модератору
 Re: тип float  [new]
andron81
Member

Откуда: Смоленск
Сообщений: 834
miksoft,

короче double . а float тогда чо ж не отменят раз в нем такой косяк ? он хоть и не ест так память, но выходит им пользоваться вообще нельзя.
объясните чайнику :)

Сообщение было отредактировано: 30 апр 20, 22:51
30 апр 20, 22:52    [22126001]     Ответить | Цитировать Сообщить модератору
 Re: тип float  [new]
miksoft
Member

Откуда:
Сообщений: 38323
andron81
короче double
да нет же.
У double только погрешность меньше, но все равно 0.1 он хранить точно не сможет.
andron81
а float тогда чо ж не отменят раз в нем такой косяк ? выходит им пользоваться вообще нельзя.
Можно. Деньги в нем хранить крайне нежелательно, а вообще можно.
Для многих физических величин вполне подходит.
30 апр 20, 22:57    [22126004]     Ответить | Цитировать Сообщить модератору
 Re: тип float  [new]
andron81
Member

Откуда: Смоленск
Сообщений: 834
miksoft
andron81
короче double
да нет же.
У double только погрешность меньше, но все равно 0.1 он хранить точно не сможет.
andron81
а float тогда чо ж не отменят раз в нем такой косяк ? выходит им пользоваться вообще нельзя.
Можно. Деньги в нем хранить крайне нежелательно, а вообще можно.
Для многих физических величин вполне подходит.


ну да. согласен и с double косяк.
30 апр 20, 23:13    [22126011]     Ответить | Цитировать Сообщить модератору
 Re: тип float  [new]
ъъъъъ
Member

Откуда:
Сообщений: 710
andron81
miksoft,

короче double . а float тогда чо ж не отменят раз в нем такой косяк ? он хоть и не ест так память, но выходит им пользоваться вообще нельзя.
объясните чайнику :)


А ты попробуй записать (на листе А4) в виде десятичной дроби значение "одна треть" (1/3).
Сразу "косяк" в десятичной дроби увидишь.
Вопрос: что надо "отменять" - десятичные дроби, бумагу формата А4 или число 1/3?
1 май 20, 04:24    [22126050]     Ответить | Цитировать Сообщить модератору
 Re: тип float  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
ъъъъъ,

Спасибо чел. Это самый лучший ответ. Я уже подустал этот float/double обсуждать. И faq мы не создали.
1 май 20, 08:52    [22126069]     Ответить | Цитировать Сообщить модератору
 Re: тип float  [new]
andron81
Member

Откуда: Смоленск
Сообщений: 834
ъъъъъ
andron81
miksoft,

короче double . а float тогда чо ж не отменят раз в нем такой косяк ? он хоть и не ест так память, но выходит им пользоваться вообще нельзя.
объясните чайнику :)


А ты попробуй записать (на листе А4) в виде десятичной дроби значение "одна треть" (1/3).
Сразу "косяк" в десятичной дроби увидишь.
Вопрос: что надо "отменять" - десятичные дроби, бумагу формата А4 или число 1/3?


вообще не пойму причем тут 1/3 . 1/3 в десятичную не переведешь дробь и тут вопросов нет. или переведешь но вот так 0.3333333... или вот так 0.(3). тут понятно. Но речь то о 0.1 . 0.1 = 1/10.
отменять школьную арифметику я не предлагал. против неё не попрешь. я не понимал зачем нужен float раз такой косяк даёт. но оказалось и double "грешит". значит дело в моем непонимании. почему 0.1f трактуется как 0.100000001, а не как 0.100000000
вопрос так и остается открытым

Сообщение было отредактировано: 1 май 20, 14:02
1 май 20, 13:58    [22126198]     Ответить | Цитировать Сообщить модератору
 Re: тип float  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10177
andron81
вопрос так и остается открытым
"Иногда не помогает и чтение газет" (ц) сын турецко-подданного.
Разложите 1/10 в двоичной системе исчисления. Которая, внезапно, используется в компьютерах не по чьей-то прихоти, а из-за физических особенностей логических электронных схем.
1 май 20, 14:14    [22126209]     Ответить | Цитировать Сообщить модератору
 Re: тип float  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
Float не умеет точно отображать дробно-десятичные цифры.
1 май 20, 14:16    [22126210]     Ответить | Цитировать Сообщить модератору
 Re: тип float  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10177
mayton
Float не умеет точно отображать дробно-десятичные цифры.
Умеет: 0.5, 0.25, 0.125 и многие другие "отображаются" идеально точно.
1 май 20, 14:18    [22126212]     Ответить | Цитировать Сообщить модератору
 Re: тип float  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
Давай заверши мысль. И я закрою этот топик.
1 май 20, 14:21    [22126215]     Ответить | Цитировать Сообщить модератору
 Re: тип float  [new]
andron81
Member

Откуда: Смоленск
Сообщений: 834
Basil A. Sidorov

Разложите 1/10 в двоичной системе исчисления.

за это спасибо .

Basil A. Sidorov

Которая, внезапно, используется в компьютерах не по чьей-то прихоти, а из-за физических особенностей логических электронных схем.


без иронии жить скучно , да ? ))))
1 май 20, 14:29    [22126216]     Ответить | Цитировать Сообщить модератору
 Re: тип float  [new]
andron81
Member

Откуда: Смоленск
Сообщений: 834
ъъъъъ
andron81
вопрос так и остается открытым

+ Ну и зачем тогда?




я получил ответ.
1 май 20, 15:00    [22126235]     Ответить | Цитировать Сообщить модератору
 Re: тип float  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
Модератор: Тема закрыта
1 май 20, 16:58    [22126285]     Ответить | Цитировать Сообщить модератору
Все форумы / C++ Ответить