|
1 / 1 / 1
Регистрация: 30.06.2021
Сообщений: 31
|
|||||||||||
Где теряется точность?04.09.2022, 20:40. Показов 3592. Ответов 23
Здравствуйте, сразу к делу:
А если написать так:
причём, если 'y' сделать double, опять получаем округление до 49.0000 Где теряется точность?
0
|
|||||||||||
| 04.09.2022, 20:40 | |
|
Ответы с готовыми решениями:
23
Теряется точность Куда теряется точность? Теряется точность в сравнении с exel |
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,980
|
||||||||
| 08.09.2022, 14:48 | ||||||||
0
|
||||||||
|
Нарушающий
417 / 305 / 46
Регистрация: 13.04.2022
Сообщений: 1,759
|
|||||||||||
| 09.09.2022, 20:38 | |||||||||||
|
Вспомнил про эту тему, вот мои результаты (gcc/linux, Float, Double, Long double):
Адрес байтов растет влево.
0.6 в двоичном это 0.(1001). В зависимости от границы байта это может быть 0х33, 0х66, 0х99 или 0xcc Во всех случаях выше округление правильно выполняется вверх, поэтому погрешность для 0.1 тоже вверх. Погрешность для представления 0.1 равна значению нижнего бита мантиссы, минус отброшенный остаток. Float мантисса 23 бита, -100 1100 1101, значение нижнего бита 2-23, экспонента 2-4, т.е. 2-27. Величина отброшенного хвоста 1100 1100... начиная с 24 бита это 1.6*2-24, и экспонента 2-4, всего 1.6*2-28. Разница между двумя: 0.4*2-28, или 0.000000001490116119384765625, десятичная дробь конечной длины. Если написать printf() очень аккуратно, то printf( "%.30f", (float)0.1 ) должен вывести 0.100000001490116119384765625000. У меня ровно столько и выводит. Если кому-то интересно поиграться, код ниже. Кликните здесь для просмотра всего текста
0
|
|||||||||||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,312
|
|||||||
| 10.09.2022, 20:00 | |||||||
Сообщение было отмечено Zicrys как решение
Решение1. Использование float в качестве промежуточного типа, в то время как с точки зрения языка все выражение вычисляется в типе double. Это приводит к "огрублению" промежуточного результата. Об этом вам уже рассказали.2. Сам факт выноса подвыражения M_PI*pow(x,2) из целого выражения pow(x,2)-sin(M_PI*pow(x,2)), даже (!) если бы промежуточный результат сохранялся в типе double, то есть даже если бы с тривиальной точки зрения потери точности "не могло быть".Реализация может использовать модель плавающих вычислений, которая выполняет все промежуточные вычисления в рамках полного выражения в супервысокой точности, т.е. в точности, превышающей точность типа double. Всякий раз, когда вы подразбиваете плавающее выражение на подвыражения с записью в промежуточные переменные, это приводит к огрублению промежуточных результатов. Будет ли иметь место этот эффект зависит от используемой реализацией модели плавающих вычислений. Мы все прекрасно помним это явление, когда плавающие вычисления на платформе x86 выполнялись средствами FPU. С переходом на использование SSE2 это явление становится менее актуальным. Другими словами, даже при использовании "правильных" типов
x и y в примере) могут быть разными (см. FP_CONTRACT).
1
|
|||||||
| 10.09.2022, 20:00 | |
|
Теряется точность переменной типа double
Умножение преобразованием Фурье. Теряется точность Где то теряется post Где теряется кодировка ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний против массовых профанаций
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс
Ссылка на сгенерированную музыкальную композицию:
https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013
Я говорю, что Время- как вода
течет. . .
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|