Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MousePro
49 / 30 / 1
Регистрация: 25.04.2013
Сообщений: 366
#1

Проверить вычисления на переполнение и потерю точности - C++

14.08.2014, 19:37. Просмотров 411. Ответов 1
Метки нет (Все метки)

Надо написать функции арифметических действий с проверкой переполнения,потери и генерировать исключение если оно случается.
Вообщем то как бы все просто, в функции сделать операцию в более широком типе и проверить с помощью констант INT_MAX, получается что для целочисленных типов максимум ULLONG_MAX.
Как проверить выше ULLONG_MAX и какой максимум для dobule - 1.79769e+308?

Добавлено через 10 минут
Выполнить операцию поразрядно в char массив например, посчитать разряды и если их больше то переполнение?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2014, 19:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверить вычисления на переполнение и потерю точности (C++):

Не точности вычисления C++ - C++
double N=1.0100000000000000; N=(N-floor(N))*10; cout<<N; Выводит: 0.10000000000000009 - что ни есть правильно (добавляет 9 в...

Вычисления до заданной точности - C++
Исправьте ошибку пожалуйста! #include <stdio.h> #include <math.h> #include <conio.h> int fact(int x) { if(x<=1) return 1; ...

Проверить массив на переполнение - C++
Есть массив unsignec char buff = {0}; Подскажите можно ли таким образом (приведённым ниже) проверить массив на заполнение: if(buff...

Проверить int на переполнение - C++
Здорова! Нужно как то проверить int на переполнение. А я вообще не пойму, что понимается под переполнением. Это что как бы выход за...

Вычислить сумму ряда. Вычисления заканчивать при достижении заданной степени точности - C++
Помогите пожалуйста доработать программу, в программировании новичок. #include "stdafx.h" #include <iostream> using namespace...

Вычисления массива (проверить код) - C++
Описать алгоритм вычисления массива значений функции y^i={a*sin(x i-итоe)/sin(x i-итоe)-b (x i-итоe)<2,3 {btg(x i-итоe) 2.3<=(x...

1
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3142 / 307
Регистрация: 04.12.2011
Сообщений: 8,673
Записей в блоге: 5
16.08.2014, 01:32 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool IsNumber(double x) 
    {
        // This looks like it should always be true, 
        // but it's false if x is a NaN.
        return (x == x); 
    }
 
//Here DBL_MAX is a constant defined in float.h as the largest double that can be represented.
 
bool IsFiniteNumber(double x) 
    {
        return (x <= DBL_MAX && x >= -DBL_MAX); //можно разделить еа две булевых ф-ции, если интересно какое именно переполнение + или - infinity
    }
Подробнее:
http://www.johndcook.com/IEEE_exceptions_in_cpp.html
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2014, 01:32
Привет! Вот еще темы с ответами:

Проверить правильность вычисления по формулам - C++
Правильно я записал формулы? Вернее я точно знаю что нет, где ошибка?)) { u=sqrt(sqrt((-q/2)+sqrt(d))); ...

Определение точности вычисления интеграла - Математический анализ
Задание: Определить точность вычисления значения интеграла (ε - ?) взяв сумму первых трех членов разложения: ...

Непонятная ошибка в точности вычисления arccos - Pascal
Написал код, но он вычисляет arccos с погрешностью: var n:integer; x, s, t, e: real; begin e := 0.000001; Readln(x); s...

как проверить переполнение double - C++/CLI
Добрый день, столкнулся с проблемой я передаю в функцию значения long double, но вот функция принимает double и становиться равной...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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