Форум программистов, компьютерный форум CyberForum.ru

Значимость числа - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.70
kos_ua
0 / 0 / 0
Регистрация: 29.03.2011
Сообщений: 35
10.05.2006, 14:24     Значимость числа #1
Пишем код:

float x=432.2;

x=x-432;

По логике и согласно арифметике:

x=0.2

А по мнению ВСЕХ компилеров С++/С

x=0.20001221

При добавлении целой части, в размере >200 остаток исчезает...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2006, 14:24     Значимость числа
Посмотрите здесь:

2 Задачи на С++(Вводить и суммировать числа пока пользователь не введет 2 одинаковых числа) C++
Дан файл F, компонентами которого являются целые числа. Получить в файле G все нечетные числа, входящие в файл F. Числа в файле G должны следовать C++
C++ От данного числа N вычтем сумму цифр этого числа, от полученного числа опять вычтем сумму цифр и т.д. до тех пор, пока число положительно
По последней цифре числа найти последнюю цифру квадрата этого числа C++
C++ Как написать программу-калькулятор чтобы было можно додавать 2 числа, 3 числа, 4 числа, n чисел?
Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми C++
C++ Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
10.05.2006, 17:05     Значимость числа #2
последствия приведения типов float -> double -> float, int -> double -> float
petrovich1
0 / 0 / 0
Регистрация: 22.09.2007
Сообщений: 314
10.05.2006, 17:37     Значимость числа #3
Очень неприятная вещь для научных вычислений и графики. При количестве итераций около 100 этот глюк становится заметен.
Silver
Сообщений: n/a
24.05.2006, 13:45     Значимость числа #4
x=0.20001221
При добавлении целой части, в размере >200 остаток исчезает...
Это не глюк! Это известная вещь, которая называется значимостью числа.
Сейчас я конечно навскидку не помню, но у каждого формата double, float есть количество цифр, которое является значимым.
Допустим для float это 8
получаем, что при добавлении 200 к 0.20001221 число становится равным 200.20001221.
Отсчитываем от начала 8 цифр (значимых) и получаем 200.2000
А неровный остаток x=0.20001221 из-за хранения числа в 16-ричном виде,
а не в десятичном.
Silver
Сообщений: n/a
24.05.2006, 13:53     Значимость числа #5
Исправление
Отсчитываем от начала 8 цифр (значимых) и получаем 200.20001
На самом деле там несколько сложнее, но принцип таков.
kos_ua
0 / 0 / 0
Регистрация: 29.03.2011
Сообщений: 35
05.07.2006, 11:47  [ТС]     Значимость числа #6
Все намного проще... Слава Богу, есть такой предмет как ОФЭВМ (Организация функционирования ЭВМ).... Вот там и объяснили в чем же заключается соль...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2006, 15:49     Значимость числа
Еще ссылки по теме:

Даны два числа. Если квадратный корень из второго числа меньше первого числа, то увличить второе число в пять раз с++ C++
Определить цифры целого числа (тип числа - целое без знака) C++
Ввести в программу строку (числа, латиница), считать только числа, записать числа в массив C++
C++ Нужно ввести два числа, а вывести ряд от первого числа до второго
C++ Вывести на экран все числа, номера которых есть числа Фибоначчи

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

Или воспользуйтесь поиском по форуму:
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
05.07.2006, 15:49     Значимость числа #7
http://www.parashift.com/c++-faq-lite/newbie.html



вопрос № [29.16]
Yandex
Объявления
05.07.2006, 15:49     Значимость числа
Ответ Создать тему
Опции темы

Текущее время: 18:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru