我想写一个函数来计算不同变量类型的Tangens Hyperbolicus的极限。到目前为止, float 和 double 的功能运行良好。但是当我为长双打:
尝试相同的功能时会出现问题#include <iostream>
#include <math.h>
#include <cfloat>
#include <climits>
using namespace std;
void LB_Limit()
{
long double start = 0;
long double result = 0;
while (result <= LDBL_MAX)
{
result = ((exp(2 * start)) - 1) / ((exp(2 * start)) + 1);
cout << "Value: " << start << " " << result << endl;
start++;
}
}
知道它为什么不起作用? 感谢您提前提供任何帮助。
编辑:抱歉,我忘了添加结果:
控制台输出 float 和 double 的功能:(它只是0-355的片段)
Value: 347 1
Value: 348 1
Value: 349 1
Value: 350 1
Value: 351 1
Value: 352 1
Value: 353 1
Value: 354 1
Value: 355 -1.#IND
控制台输出 long double 的功能:
Value: 0 0
Value: -0 -4.19303e+014
Value: -0 -1.66963e+264
Value: -2 -2.9904e+302
Value: -0 -5.63043e+307
Value: -1.49167e-154 -1.#QNAN
Value: -2 -1.#QNAN
Value: -2.68156e+154 -1.#QNAN
Value: -0 -1.#QNAN
(...)
Value: -9.36335e-097 -1.#QNAN
Value: -2.39702e-094 -6.47226e-322
Value: -6.13637e-092 -9.88131e-324
Value: -1.57091e-089 -2.71736e-322
Value: -4.02153e-087 -3.01874e-321
Value: -1.02951e-084 -1.#QNAN
Value: -2.63555e-082 -1.#QNAN
Value: -6.74701e-080 -2.76677e-322
Value: -1.72723e-077 -1.#QNAN
Value: -4.42172e-075 -1.#QNAN
Value: -1.13196e-072 -1.49208e-321
Value: -2.89782e-070 -2
程序停止了。