使用功率产生意想不到的结果

Using pow yield unexpected result

本文关键字:意想不到 结果 功率      更新时间:2023-10-16

我试图在c++中使用pow函数,但结果不是我所期望的。片段:

#include <math.h>
float floatcopy = boost::lexical_cast<float>(copy); //Then floatcopy is 2.300000    
float exponent = boost::lexical_cast<float>(copy[foundEXP+1]); // Then exponent is 5.00000    
floatcopy = pow(floatcopy*10,-exponent);

现在,当我在计算器上输入2.3*10^-5时(或者在我的脑海中…)我如愿以偿:0.0000230

上面的剪辑结果为1.5536773e-007

这里有什么问题?

您的计算器正在计算2.3*(10^-5)。在你的代码中你计算(2.3*10)^-5

看起来你计算的是(2.3*10)^-5而不是2.3*10^-5。

试题:

floatcopy = floatcopy*pow(10,-exponent);

您没有正确使用pow函数。你实际做的是(2.3 * 10)^-5,而你试图做的(如果我没有错的话)是2.3 *(10 ^-5)。

要这样做,你应该这样做:

floatcopy *= pow(10,-exponent);

23的- 5次方就是您得到的结果....