在c ++的exp函数中可以使用指数形式吗?
我猜1.00e + 006等于10 ^ 6。
但是,如果我将e用于exp函数,则会给出错误的结果1.#INF,如下所示。
cout << exp(1.00e+006) << endl; // result : 1.#INF
cout << exp(10^6) << endl; // result : 162755
实际上,在我的代码中,我使用了“ double A”变量,由于某种原因,它具有指数形式(例如e + 006)。我必须将A更改为exp(A)。有什么问题吗?
答案 0 :(得分:1)
exp(1e6)
是e 10 6 。10^6
是10 XOR 6 1e6
是1000000 答案 1 :(得分:1)
exp()函数对于解释C ++中的浮点文字不是必需的,实际上,它完全可以完成其他操作。计算e到x。
e到百万分之一的数字是如此之大,这并不奇怪,它溢出了两倍,给您1.#INF结果。
^运算符不进行幂运算。它按位进行异或。