Форум программистов, компьютерный форум, киберфорум
Haskell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/29: Рейтинг темы: голосов - 29, средняя оценка - 4.69
Oleg_JK

От перемены мест слагаемых сумма меняется

01.06.2013, 12:49. Показов 6286. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
все помним что от перемены мест слагаемых сумма не меняется
но как тогда так получается что
0.3+0.3+0.1+0.1
0.79999999999
но
0.1+0.1+0.3+0.3
0.8
как и должно быть

и самое логичное и интересное
(0.3+0.3+0.1+0.1)==(0.1+0.1+0.3+0.3)
TRUE
что логично

но 0.79999999999 и 0.8 это близкие числа но все равно они разные))))

как так? кто сможет объяснить

скриншот прикреплю если будет необходимо и кому то лень вбивать в программу
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.06.2013, 12:49
Ответы с готовыми решениями:

Почему от перемены мест слагаемых меняется сумма?
В общем массиве кода страницы имеется вот такой простой HTML код: <p class="comments">Комментарии</p> Стили для этого кода ...

Шифрование строки путём перемены мест символов
Необходимо зашифровать введённую с клавиатуры строку, поменяв местами первый символ с последним, второй с предпоследним и т. д.

Опровергните с помощью программы выражение "от перестановки слагаемых сумма не меняется"
опровергните с помощью программы выражение "от перестановки слагаемых сумма не меняеться" зарание спасибо

6
 Аватар для Сtrl
144 / 134 / 8
Регистрация: 19.07.2011
Сообщений: 184
01.06.2013, 15:36
Ошибки округления при использовании чисел с плавающей запятой — это дело штатное, и от языка программирования не зависящее. Связано оно с тем, что многие дроби в двоичной системе счисления становятся периодическими (например, десятичное 0.1 превращается в двоичное 0.0(0011), но в памяти хранится только конечное количество знаков).

Числа с плавающей запятой — компромисс между скоростью вычисления, потреблению памяти и точностью. Не в пользу точности. Для рассчетов, где подобные ошибки недопустимы, используйте замечательный тип Rational.

Haskell
1
2
3
4
5
6
7
8
9
import Data.Ratio
 
a = 1%10 + 1%10 + 3%10 + 3%10
b = 3%10 + 3%10 + 1%10 + 1%10
 
main = do
    print a
    print b
    print (a==b)
1
25 / 25 / 2
Регистрация: 17.03.2013
Сообщений: 48
01.06.2013, 16:02
Цитата Сообщение от Oleg_JK Посмотреть сообщение
и самое логичное и интересное
(0.3+0.3+0.1+0.1)==(0.1+0.1+0.3+0.3)
TRUE
А у меня False:
Haskell
1
2
Prelude> (0.3+0.3+0.1+0.1)==(0.1+0.1+0.3+0.3)
False
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38168 / 21103 / 4307
Регистрация: 12.02.2012
Сообщений: 34,693
Записей в блоге: 14
01.06.2013, 18:39
Я с середины 70-х прошлого века установил для себя правило: никогда не сравнивать числа с плавающей точкой на точное равенство

Haskell
1
2
3
4
5
6
7
-- вместо этого:
 
   if (a == b) then ...
 
-- писать 
 
   if (abs (a-b)) < 1.0E-8 then ...
т.е. убеждаться, что модуль разности не превышает "маленького" числа.

Добавлено через 1 минуту
Цитата Сообщение от IEAIAIO Посмотреть сообщение
А у меня False:
- у меня тоже.
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
01.06.2013, 18:44
Чтиво в тему: http://docs.oracle.com/cd/E199... dberg.html
1
Антикодер
Эксперт функциональных языков программирования
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,088
01.06.2013, 21:38
при программировании систем для денежных расчетов также не рекомендуется использовать вещественный тип данных. Поэтому если нужна точность используйте целые числа.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38168 / 21103 / 4307
Регистрация: 12.02.2012
Сообщений: 34,693
Записей в блоге: 14
01.06.2013, 21:42
Цитата Сообщение от Nameless One Посмотреть сообщение
Чтиво в тему:
- спасибо!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.06.2013, 21:42
Помогаю со студенческими работами здесь

Перестановка мест слагаемых
Приведите пример, когда value = value + addition и value += addition дают одинаковый результат и когда разный. В чем будут...

Представить число N в виде суммы M натуральных слагаемых так, чтобы сумма синусов слагаемых была максимальной
Даны натуральные числа N и M. Нужно представить число N в виде суммы M натуральных слагаемых так, чтобы сумма синусов этих слагаемых была...

От перестановки мест слагаемых - что поменяется?
Есть главная таблица A и две зависимых B и C, в которых (в каждой) есть поле суммы. Для некоторых записей главной таблицы есть подчиненные...

Заполнить двумерный массив номерами мест, подсчитать количество мест у окон и вывести на экран схему мест
В автобусе 6 рядов кресел по 4 места в каждом ряду. Чётные номера находятся у окон.Необходимо заполнить двумерный массив номерами мест,...

Сумма Наименьших 4 мест команды
Здравствуйте! Помогите вычислить сумму 4 наименьших мест команды. На листе &quot;Общее&quot; для команды ДООФСЦ получилась сумма только 3 мест -...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru