Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 27.01.2015
Сообщений: 4

Точность вычислений в зависимости от типа переменной

07.02.2015, 14:01. Показов 1310. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. На Java перешел совсем недавно и сегодня заметил такую вещь:

Java
1
2
3
4
5
float x1 = -2;
float x2 = 5;
 
exactValue = (x2*Math.atan(x2/3) - 1.5*Math.log((9+x2*x2)/9)) - (x1*Math.atan(x1/3) - 1.5*Math.log((9+x1*x1)/9));
return exactValue;
Вот кусок кода, которй проводит расчет точного значения определенного интеграла формулой Ньютона-Лейбница. x1 и x2 - границы, соответственно. Так вот, если переменные x1 и x2 типа int, то ответ получается 2.279072383985077 (не верный ответ). Если же сделать их типа float, то ответ получается 2.533762109256351 (верный ответ).

Вопрос: почему так? Ведь границы - целое число.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.02.2015, 14:01
Ответы с готовыми решениями:

Теряется точность переменной типа double
Вот код: double StepC = 0.001, g_C; for ( double c = StepC; c <= 3; c += StepC ) { //...

Действовать в зависимости от типа переменной
допустим есть массив в которой я хочу добавить по определённым индексам значение всех переменных передаваемой структуры. Проблема возникает...

Точность вычислений
Для проверки точности вычислений существуют формулы и калькулятор на 200000 знаков до и после запятой. Проверяются любые вычисленные...

4
 Аватар для Sanan07
284 / 264 / 173
Регистрация: 27.07.2014
Сообщений: 584
07.02.2015, 14:21
При делении int берет целую часть от частного, а флоат весь результат. т.е. 1/3=0 при инт и 1/3=0,333334 при флоат
1
0 / 0 / 0
Регистрация: 27.01.2015
Сообщений: 4
07.02.2015, 14:24  [ТС]
Sanan07, спасибо!
А почему тогда остальные числа не повлияли на результат? Ведь в формуле ещё были целые числа.
0
 Аватар для Sanan07
284 / 264 / 173
Регистрация: 27.07.2014
Сообщений: 584
07.02.2015, 14:30
Zhenya_, Не понял вопрос, какие остальные числа?
0
0 / 0 / 0
Регистрация: 27.01.2015
Сообщений: 4
08.02.2015, 21:21  [ТС]
Sanan07,

exactValue = (x2*Math.atan(x2/3) - 1.5*Math.log((9+x2*x2)/9)) - (x1*Math.atan(x1/3) - 1.5*Math.log((9+x1*x1)/9));

В формуле есть ещё целые числа, такие как 3 и 9. Но они почему-то не влияют на результат.

Например, если вместо x1, x2 подставить -2 и 5, то результат меняется на неправильный (так как -2 и 5 - int). Если изменить их на -2.0 и 5.0, то результат снова стает верным. Почему тогда результат не меняется от 3 и 9, они же тоже int?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.02.2015, 21:21
Помогаю со студенческими работами здесь

точность вычислений
Известно что в Питоне: 1.001 + 5 = 6.0009999999999994 А хочется чтобы было 6.001 Пользователь хочет видеть красивые числа...

Точность вычислений
Здравствуйте уважаемые форумчане. Если в матлабе вычислить такое выражение 0.05+0.001 == 0.051 то он выдаст 0; А если...

Точность вычислений 10^30 - 10^(-30)
Здравствуйте, скажите пожалуйста, можно ли в какой либо программе, или на супер компьютере проводить вычисления примерно такого порядка...

Точность вычислений
Почему в программе при написании float A = 28.8; float B = 19.6;в отлатчике видим A = 28.8000004, И = 19.9999997? Как сделать...

Возвращаемая информация в зависимости от типа принимающей переменной
Здравствуйте! Читаю книгу "Язык программирования C++. Лекции и упражнения", и запнулся на одном моменте, который я так и не смог понять: ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru