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

Погрешности в определении 0 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Элементарные задачки на контрольную. Требуется помощь в решении http://www.cyberforum.ru/cpp-beginners/thread3166.html
Есть несколько несложных задач из контрольной работы по языку С первого курса, которые я не совсем знаю как делать. 1)Посчитать кол-во единиц в двоичной записи целого числа 2)Функция проверяет верен ли признак делимости целого числа на 11 (разность суммы цифр числа, стоящих на нечетных местах и сумма цифр, стоящих на четных местах, делится на 11) 3)Выяснить из четного или нечетного кол-ва...
C++ Как преобразовать время в строку и обратно Помогите с алгоритмом: SYSTEMTIME(или FileTime) в строку с учетом региональных установок, а потом на основе данной строки обратно получить SYSTEMTIME(или FileTime). Нормальных классов и стандартных функций я не нашел. Были под 16-разрядные функции: char *ctime( const time_t *timer );char *asctime( const struct tm *timeptr ); без обратного преобразования и с простой интерпретацией (без учета... http://www.cyberforum.ru/cpp-beginners/thread3162.html
C++ Поменять местами старший и младший полубайты
Как поменять старший и младший полубайт беззнакового короткого целого местами? конечно же используя битовые операции.. напишите прогу плз
C++ Помогите в создании простейшей программы сложения
я создаю простейшую прогу сложения,компилятор не находит ошибок,через run project сморю намана debug project ответ не выводит окно закрывается и почему программа выходит через dos
C++ Как отформатировать данные перед их использованием? http://www.cyberforum.ru/cpp-beginners/thread3129.html
Например, мне надо выдать данные в hex формате, а они у меня в виде char или byte -что для этого нужно сделать?
C++ Написание простой базы данных Помогите пожалуйста написать простую БД на C++. Надо только в консольном варианте, с возможностью редактирования самой БД (посмотреть определённую категори, добавить.далить и т.д). Содержание БД - что то типа прайслиста компьютерного магазина. Или подскажите с чего начать :( подробнее

Показать сообщение отдельно
Alex Skye
Сообщений: n/a

Погрешности в определении 0 - C++

24.10.2007, 11:36. Просмотров 1102. Ответов 1
Метки (Все метки)

Есть вот такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
double Hphi(double x)
{
  if(x==0) return 111;
  else return 222;
}
 
int main(int argc, char *argv[])
{
    double x, H;
    for (x = -0.2; x <= 0.2; x=x+0.1){
          H = Hphi(x);
          printf("%10f, %10f\n", x, H);
    };
    
    getch();
    return 0;
}
А вот результат его работы:
-0.300000, 222.000000
-0.200000, 222.000000
-0.100000, 222.000000
0.000000, 222.000000
0.100000, 222.000000
0.200000, 222.000000.

Если же задавать цикл от -0,2 до 0,2 то все нормально:
-0.200000, 222.000000
-0.100000, 222.000000
0.000000, 111.000000
0.100000, 222.000000
0.200000, 222.000000

Очевидно проблема в погрешности определения 0, но почему она имеет место не пойму. Подскажите пожалуйста, если кто знает.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru