2016-11-16 7 views
1

Я работаю с матрицами в C++, а тип элементов - двойной. Мой предел для матричных величин составляет 10 000. Я хочу знать, что такое логическое значение, заданное как ограничение для элементов, учитывая тот факт, что я выполняю на них много действий суммирования и умножения. Я хочу, чтобы это число было как можно выше, но без проблем с бесконечным числом.лучший двойной предел значения в C++

+10

Почему, по-вашему, вам нужно «установить лимит для элементов»? –

+1

Я имею в виду, что вы уже ограничены своей системной архитектурой для индексирования в вашу матрицу. Разве этого недостаточно? – mascoj

+0

Я получаю бесконечность в результате матричного продукта. – dieKoderin

ответ

0

Вы всегда можете использовать std::numeric_limits.


Например:

#include <limits> 
#include <iostream> 

int main() 
{ 
      std::cout << "float\t" 
      << std::numeric_limits<float>::lowest() << '\t' 
      << std::numeric_limits<float>::max() << '\n'; 
      std::cout << "double\t" 
      << std::numeric_limits<double>::lowest() << '\t' 
      << std::numeric_limits<double>::max() << '\n'; 
} 
+0

Как это отвечает на вопрос оп? – George

+1

@George Errr ... как, она просит лимит, и Мохамед предоставляет один? (По общему признанию, вопрос не совсем ясен - другие люди, похоже, думают, что она просит лимитировать индексы, а не ценности. Но, учитывая, что она делает «много сумм и умножений» на них и говорит о бесконечных результатах, я думаю, она спрашивает для пределов значения элемента.) –

+0

Вопрос «Я хочу знать, что такое логическое значение для установки как предела для элементов», а элементы «double», поэтому это должно быть то, что максимальный и минимальный пределы «double» на данный машина. –

1

Диапазон двойник

1.7976931348623158e+308 

Позволяет сказать, максимальное значение элемента в качестве X; для умножения максимального ответ будет

X*X + X*X + X*X .....10,000 times(maximum row and column count)

т.е.

10000*X*X

Поэтому `

1.7976931348623158e+308 = 10000*X*X 

1.7976931348623158e+304 = X*X 

X ~ 1.7976931348623158e+150 

Но вы потеряете точность.

Это значение, если вы собираетесь умножить один раз.

 Смежные вопросы

  • Нет связанных вопросов^_^