使用功率产生意想不到的结果
Using pow yield unexpected result
我试图在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次方就是您得到的结果....
相关文章:
- 为什么在递归中使用循环会产生意想不到的结果?
- 字符到int8_t转换会产生意想不到的结果?
- libc++ 对 std::map/set::equal_range 的实现给出了意想不到的结果
- 微小加密算法实现会产生意想不到的结果
- 使用 std::set 的 .begin() 和 .end() 函数会产生意想不到的结果
- 在我的C++链表实现中取消引用节点指针,给出意想不到的结果
- C++正则表达式Visual Studio Community 2015给出<regex>意想不到的结果
- istringstream int8_t产生意想不到的结果
- 划分 OpenCV 垫会产生意想不到的结果
- 提升精神,提升任何意想不到的结果
- regex_match给出意想不到的结果
- 从 PASCAL 到 C++ 的代码转换给出了意想不到的结果
- 意想不到的结果c++
- 在lambda上使用条件运算符调用std::any_of会得到意想不到的结果
- vector::insert在VS2010中执行意想不到的结果
- list resize会产生意想不到的结果
- CUDA: 2D数组索引产生意想不到的结果
- 将字符串转换为整数会产生意想不到的结果
- 在c++中,一些宏语句可能会产生意想不到的结果
- Visual Studio可变宏展开会产生意想不到的结果