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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.58
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
#1

Умножение и деление - C++

08.07.2013, 17:36. Просмотров 1474. Ответов 39
Метки нет (Все метки)

Представьте себе числовой массив первым элементом равным begin. Если далее к нему мы будем прибавлять step пока не достигнем end то сформируем массив. Таким образом размер такого массива будет вычисляться по формуле
C++
1
size = static_cast<size_t>((end - begin) / step) + 1;
а последний элемент можно будет найти по формуле
C++
1
last = min + step * (size - 1);
Всё бы ничего но иногда отрезок делится на step целое число раз начинаются проблемы: из-за погрешности операций над вещественными числами в каком-то бородатом знаке после запятой результат деления оказывается чуть меньше целого числа, т. е., например, если begin = 1.0, end = 3.0, step = 1.0, при делении может оказаться что (end - begin) / step = 1.99999999999, в результате мы получим size = 2, хотя в массиве должны быть 1.0, 2.0 и 3.0. Безграмотное решение:
C++
1
size = static_cast<size_t>((end - begin) / step + 1e-8) + 1;
Вопрос к знатокам всяких там <cfloat> и <limits>: как это сделать грамотно?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2013, 17:36     Умножение и деление
Посмотрите здесь:

C++ Вычитание, умножение, деление столбиком
C++ Умножение и деление целого числа
Организовать ввод двух вещественных чисел и операции над ними: сложение, вычитание, умножение и деление C++
C++ Нужны советы как реализовать сложение, вычитание, умножение полиномов/многочленов и деление на число
Сложение и вычитание, умножение и деление, сравнение сумм C++
создать библиотеку из 5 функций: сложение, вычетание, деление, умножение и выделение корня C++
C++ Умножение/деление длинных целых чисел из строк
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
08.07.2013, 22:08     Умножение и деление #21
Цитата Сообщение от CEBEP Посмотреть сообщение
3.9999999999999
а что вы предлагаете записывать в переменную size? 3 или 4?
а если при следующих условиях?
begin = 0.0000000000
end = 1.0000000000
step = 0.7679770188
size = 2.3021222974
2 или 3?

begin = 0.0000000000
end = 1.0000000000
step = 0.6458234048
size = 1.5484109008
1 или 2?
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
08.07.2013, 22:27  [ТС]     Умножение и деление #22
begin = 0.0000000000
end = 1.0000000000
step = 0.7679770188
size = 2.3021222974
2.

begin = 0.0000000000
end = 1.0000000000
step = 0.6458234048
size = 1.5484109008
1.
Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
08.07.2013, 22:28     Умножение и деление #23
а при 3.9999999999999 ? 3?
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
09.07.2013, 08:30  [ТС]     Умножение и деление #24
не, 4
Avyyakta
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 19
09.07.2013, 19:40     Умножение и деление #25
Цитата Сообщение от CEBEP Посмотреть сообщение
MinGW,
Как-раз хотел в начале написать... округление тут не при чем. проблема не связана с округлением. При параметрах min = 0.0, max = 2.0, step = 1.1, last должно быть 1.1, в данной постановке оно получится 2.2
Сначало определись как вычислять каждый элемент. То что привел, ни в какие ворота не лезит, так как begin тогда должен быть -1.1. Проверь....
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
09.07.2013, 20:40  [ТС]     Умножение и деление #26
h:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef CINTERVAL_H
#define CINTERVAL_H
#include <iostream>
#include <limits>
#include <QTextStream>
#include <QDataStream>
#include <QDebug>
 
class CInterval
{
    size_t s;
    double st;
    double min;
public:
    CInterval();
    CInterval(double begin, double step, double end);
    CInterval(double begin, double step, size_t size);
    CInterval(double begin, double step, int size);
    static CInterval interval(double begin, double end, size_t size);
    inline double first() const { return min; }
    inline double last() const { return min + st * (s - 1); }
    inline double step() const { return st; }
    inline bool isEmpty() const { return static_cast<bool>(s); }
    inline size_t size() const { return s; }
 
    inline double operator[] (int i) const { return min + st * i; }
    inline bool operator !=(const CInterval& v) const { return v.s != s || v.min != min || v.st != st; }
    inline bool operator ==(const CInterval& v) const { return v.s == s && v.min == min && v.st == st; }
 
    friend std::ostream& operator << (std::ostream& out, const CInterval& i);
    friend std::istream& operator >> (std::istream& in, CInterval& i);
    friend QTextStream& operator << (QTextStream& out, const CInterval& i);
    friend QTextStream& operator >> (QTextStream& in, CInterval& i);
    friend QDataStream& operator << (QDataStream& out, const CInterval& i);
    friend QDataStream& operator >> (QDataStream& out, CInterval& i);
    friend QDebug operator << (QDebug out, const CInterval& i);
};
 
#endif // CINTERVAL_H
cpp:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include "cinterval.h"
 
CInterval::CInterval() {}
 
CInterval::CInterval(double begin, double step, double end)
{
    if ((begin > end && step > 0) || (step < 0 && begin < end))
    {
        double c(begin);
        begin = end;
        end = c;
    }
    min = begin;
    st = step;
    qDebug() << QString::number((end - begin) / step, 'g', 200) << static_cast<size_t>((end - begin) / step);
    s = static_cast<size_t>((end - begin) / step) + 1;
}
 
CInterval CInterval::interval(double begin, double end, size_t size)
{
    return CInterval(begin, (end - begin) / size, size + 1);
}
 
CInterval::CInterval(double begin, double step, size_t size)
    : s(size)
    , st(step < 0 ? -step : step)
    , min(begin) { }
CInterval::CInterval(double begin, double step, int size)
    : s(static_cast<size_t>(size))
    , st(step < 0 ? -step : step)
    , min(begin) { }
 
QDataStream& operator << (QDataStream &out, const CInterval &i)
{
    return out << static_cast<quint32>(i.s) << static_cast<qreal>(i.min) << static_cast<qreal>(i.st);
}
std::ostream& operator << (std::ostream& out, const CInterval& i)
{
    return out << i.s << ' ' << i.min << ' ' << i.st;
}
QTextStream& operator << (QTextStream& out, const CInterval& i)
{
    return out << i.s << ' ' << i.min << ' ' << i.st;
}
QDebug operator << (QDebug out, const CInterval& i)
{
    return out << "CInterval(" << i.first() << ':' << i.step() << ':' << i.last() << ')';
}
 
QDataStream& operator >> (QDataStream& in, CInterval& i)
{
    return in >> i.s >> i.min >> i.st;
}
std::istream& operator >> (std::istream& in, CInterval& i)
{
    return in >> i.s >> i.min >> i.st;
}
QTextStream& operator >> (QTextStream& in, CInterval& i)
{
    return in >> i.s >> i.min >> i.st;
}
то что есть на данный момент в исходном виде
ValeryS
Модератор
6485 / 4951 / 455
Регистрация: 14.02.2011
Сообщений: 16,400
09.07.2013, 20:49     Умножение и деление #27
я не понял о чем спор
об округлении
3.9 должно быть 4?
3.2 3?
вот так
C++
1
2
3
int n;
double b=3.999;
n=b+0.5;
Добавлено через 2 минуты
Цитата Сообщение от CEBEP Посмотреть сообщение
size = static_cast<size_t>((end - begin) / step) + 1;
C++
1
size = (((end - begin) / step) +0.5)+ 1;
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
09.07.2013, 20:53  [ТС]     Умножение и деление #28
Цитата Сообщение от ValeryS Посмотреть сообщение
об округлении
нет, речь не об округлении... на данный момент проблему можно сформулировать следующим образом:
На компиляторе MinGW выражение
C++ (Qt)
1
(end - begin) / step
при begin = 0.0001 step = 5e-06 и end = 1.0 имеет значение 199979.99999999997089616954326629638671875 и при приведении к целому типу принимает значение 199979, хотя математически результат - целое число 199980
ValeryS
Модератор
6485 / 4951 / 455
Регистрация: 14.02.2011
Сообщений: 16,400
09.07.2013, 21:00     Умножение и деление #29
Цитата Сообщение от CEBEP Посмотреть сообщение
при begin = 0.0001 step = 5e-06 и end = 1.0 имеет значение 199979.99999999997089616954326629638671875 и при приведении к целому типу принимает значение 199979, хотя математически результат - целое число 199980
еще раз
прибавь 0.5
199979.99999999997089616954326629638671875+0.5=199980.49999999997089616954326629638671875
приведи к целому и получишь 199980
можешь добавить 0.05 или 0.0005
до куда тебе нужно округлить
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
09.07.2013, 21:03  [ТС]     Умножение и деление #30
Цитата Сообщение от ValeryS Посмотреть сообщение
до куда тебе нужно округлить
мне нельзя округлять. ситуация, когда begin = 0, end = 4e-8, step = 1.001e-8, size должен быть равен 3 а last() возвращать 3.003e-8
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
09.07.2013, 21:05     Умножение и деление #31
C++
1
2
3
#include <cmath>
...
size = std::floor( static_cast< double >( end - begin ) / step + 0.5 );
ValeryS
Модератор
6485 / 4951 / 455
Регистрация: 14.02.2011
Сообщений: 16,400
09.07.2013, 21:09     Умножение и деление #32
Цитата Сообщение от CEBEP Посмотреть сообщение
мне нельзя округлять.
что значит нельзя?
есть точность с какой ты работаешь, дальше мусор
а так мы бы даже площадь круга не смогли бы вычислить, число Пи( как и Е) бесконечно
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
09.07.2013, 21:09     Умножение и деление #33
Не заметил, если begin, end или step имею тип double, то можно без приведения:
C++
1
size = std::floor(( end - begin ) / step + 0.5 );
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
09.07.2013, 21:13  [ТС]     Умножение и деление #34
Цитата Сообщение от ValeryS Посмотреть сообщение
точность с какой ты работаешь
вот это пожалуй суть вопроса - не забить точность какую-нибудь (в самом начале был опубликован вариант 1e-8) а выбрать максимально возможную в данной ситуации. Я предполагаю, что данная проблема рассмотрена в стандартной библиотеке и, скорее всего, константы, предоставленные в <limits> и <cfloat> позволяют создать код, работающий на максимально возможной точности. Дело в том, что я не смог разобраться в этих библиотеках самостоятельно и пошел за разъяснениями сюда..
ValeryS
Модератор
6485 / 4951 / 455
Регистрация: 14.02.2011
Сообщений: 16,400
09.07.2013, 21:23     Умножение и деление #35
Цитата Сообщение от CEBEP Посмотреть сообщение
begin = 0, end = 4e-8, step = 1.001e-8, size должен быть равен 3 а last() возвращать 3.003e-8
ты по моему сам запутался
0 1.001 2.002 3.003
сколько элементов массива?

Добавлено через 6 минут
Цитата Сообщение от CEBEP Посмотреть сообщение
а выбрать максимально возможную в данной ситуации. Я предполагаю, что данная проблема рассмотрена в стандартной библиотеке и, скорее всего, константы, предоставленные в <limits> и <cfloat> позволяют создать код, работающий на максимально возможной точности.
видишь ли точность расчета и точность представления числа не совсем одно и тоже
в сопроцессоре данные хранятся в двоичном виде и не всегда могут точно представить десятичную дробь
например дробь 0.2 сопроцессор всегда даст приблизительно поскольку не может перевести в двоичную дробь
посмотри формат числа IEEE например здесь
http://ru.wikipedia.org/wiki/IEEE_754-2008
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
09.07.2013, 21:35  [ТС]     Умножение и деление #36
Цитата Сообщение от ValeryS Посмотреть сообщение
ты по моему сам запутался
Ну да... на ходу пример сочинил... size должно быть 4...
На счет того, что ни одно число не представляется в памяти компьютера точно я знаю и даже четко понимаю почему так. Именно это не даёт мене права закрыть глаза на такого рода огрехи моего класса. Как решить проблему-то?

Добавлено через 5 минут
Цитата Сообщение от Toshkarik Посмотреть сообщение
size = std::floor(( end - begin ) / step + 0.5 );
попробовал с floor - эффект тот же.. и ещё раз, речь не о тривиальном округлении.
ValeryS
Модератор
6485 / 4951 / 455
Регистрация: 14.02.2011
Сообщений: 16,400
09.07.2013, 21:39     Умножение и деление #37
Цитата Сообщение от CEBEP Посмотреть сообщение
Как решить проблему-то?
взять точность с которой работаешь и приводить к ней (как в математике)
например нужно до десятитысячной
C++
1
2
3
4
int n;
double b =1.00025;
n=b*10000+0.5;
b=n/10000
или пересмотреть свою идеологию и работать с целыми

Цитата Сообщение от CEBEP Посмотреть сообщение
begin = 0, end = 4e-8, step = 1.001e-8, size должен быть равен 3 а last() возвращать 3.003e-8
C++
1
2
3
long long begin=0;
long long  end = 4000;
long long step = 1001;
при выводе делить на 10 в одиннадцатой
тогда не будет потери точности

другого пути я не знаю

Добавлено через 1 минуту
Цитата Сообщение от CEBEP Посмотреть сообщение
На счет того, что ни одно число не представляется в памяти компьютера точно я знаю и даже четко понимаю почему так.
поправочка
дробное число
целые передаются точно
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
09.07.2013, 21:45  [ТС]     Умножение и деление #38
Цитата Сообщение от ValeryS Посмотреть сообщение
взять точность с которой работаешь и приводить к ней (как в математике)
данная погрешность возникла в результате вычислений на процессоре с вполне себе известной точностью (как упоминалось ранее, 2^52), которая обусловлена аппаратными свойствами и компилятором. Не могу же я намереваясь разработать качественный класс вводить свою, отличную от уже принятой, точность, просто по тому что не смог привести результат деления к целому числу.
ValeryS
Модератор
6485 / 4951 / 455
Регистрация: 14.02.2011
Сообщений: 16,400
09.07.2013, 21:57     Умножение и деление #39
Цитата Сообщение от CEBEP Посмотреть сообщение
данная погрешность возникла в результате вычислений на процессоре с вполне себе известной точностью (как упоминалось ранее, 2^52),
значит можешь использовать число до 2^51
добавляй в 52 разряд корректирующее число
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2013, 08:40     Умножение и деление
Еще ссылки по теме:

C++ Написать программу для работы с двоичными числами (сумма, вычитание, умножение и деление)
Нестандартное сложение, вычитание, умножение и деление C++
C++ Структуры: арифметические операции (сложение, вычитание, умножение, деление) над комплексными числами
Сделать сложение, вычитание, умножение и деление длинных чисел C++
Чем заменить умножение и деление? C++

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

Или воспользуйтесь поиском по форуму:
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
10.07.2013, 08:40  [ТС]     Умножение и деление #40
Цитата Сообщение от ValeryS Посмотреть сообщение
добавляй в 52 разряд корректирующее число
пытался понять эту фразу... с помощью этого кода желаемого эффекта не добился:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
    double real = (end - begin) / step;
    for (int i = 0; i != 8 * 8; ++i)
    {
        cout << i << ':';
        double realSize = real;
        unsigned long long& d(*static_cast<unsigned long long*>(static_cast<void*>(&realSize)));
        cout << QString::number(realSize, 'g', 80) << static_cast<size_t>(realSize) << &realSize << &d;
        d |= (static_cast<unsigned long long>(1) << i);
        cout << QString::number(realSize, 'g', 80) << static_cast<size_t>(realSize);
    }
вываливается следующее:

0 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
1 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
2 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
3 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
4 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
5 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
6 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
7 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
8 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
9 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
10 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
11 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
12 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
13 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
14 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
15 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
16 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
17 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
18 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
19 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
20 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
21 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
22 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
23 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
24 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
25 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
26 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
27 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
28 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
29 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
30 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
31 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
32 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
33 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
34 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
35 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
36 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
37 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199983.99999999997089616954326629638671875" 199983
38 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
39 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199995.99999999997089616954326629638671875" 199995
40 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
41 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"200043.99999999997089616954326629638671875" 200043
42 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"200107.99999999997089616954326629638671875" 200107
43 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
44 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"200491.99999999997089616954326629638671875" 200491
45 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
46 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
47 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"204075.99999999997089616954326629638671875" 204075
48 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"208171.99999999997089616954326629638671875" 208171
49 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"216363.99999999997089616954326629638671875" 216363
50 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"232747.99999999997089616954326629638671875" 232747
51 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
52 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"399959.9999999999417923390865325927734375" 399959
53 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"799919.999999999883584678173065185546875" 799919
54 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"3199679.9999999995343387126922607421875" 3199679
55 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"51194879.999999992549419403076171875" 51194879
56 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
57 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"858907559854079.875" 4294967295
58 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"3688979879860435595296768" 0
59 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"68049667736849264019885339711162807733977088" 0
60 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"2.315610200567848939081239218820743347912004565598096579196767483233090752744312e+82" 0
61 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"2.681293429829920177754244729642176185873669852656278609102389984394084513339488e+159" 0
62 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"199979.99999999997089616954326629638671875" 199979
63 :
"199979.99999999997089616954326629638671875" 199979 0x28fd98 0x28fd98
"-199979.99999999997089616954326629638671875" 4294767317 [/CODE]
 Комментарий модератора 
Ув. модераторы! Циферки в теги кода не заключайте, пожалуйста, вызывает внутреннюю ошибку сервера
Yandex
Объявления
10.07.2013, 08:40     Умножение и деление
Ответ Создать тему
Опции темы

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