1

Есть такой вопрос: почему точность вычислений ограничена именно седьмым знаком после запятой(на скрине видно, что начиная именно со значения pi=3.1415927 значение площади не меняется). Единственный вариант, который мне пришел в голову, связан с правилами округления(то есть начиная с 3.1415927 седьмой знак будет равен именно 7)введите сюда описание изображения

1 Answers1

1

потому что в 4байтовом float на мантиссу отводится только 23 бита

https://ru.wikipedia.org/wiki/%D0%A7%D0%B8%D1%81%D0%BB%D0%BE_%D0%BE%D0%B4%D0%B8%D0%BD%D0%B0%D1%80%D0%BD%D0%BE%D0%B9_%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D1%81%D1%82%D0%B8

23 бита - это точность порядка 2e-23 = 0,0000001

если использовать 8байтовый double, то на мантиссу будет отводиться 52 бита

https://ru.wikipedia.org/wiki/%D0%A7%D0%B8%D1%81%D0%BB%D0%BE_%D0%B4%D0%B2%D0%BE%D0%B9%D0%BD%D0%BE%D0%B9_%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D1%81%D1%82%D0%B8

а это уже точность 2e-52 = 1e-16

Zhihar
  • 37,513