我正在尝试在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
这里有什么问题?
答案 0 :(得分:6)
您的计算器正在计算2.3 *(10 ^ -5)。在您的代码中,您计算(2.3 * 10)^ - 5.
答案 1 :(得分:2)
看起来你正在计算(2.3 * 10)^ - 5而不是2.3 * 10 ^ -5。
尝试:
floatcopy = floatcopy*pow(10,-exponent);
答案 2 :(得分:0)
您没有正确使用pow功能。你实际做的是(2.3 * 10)^ - 5,你尝试做什么(如果我没错)是2.3 *(10 ^ -5)。
为此,你应该这样做:
floatcopy *= pow(10,-exponent);
答案 3 :(得分:-2)
23到-5的幂可以得到你得到的结果......