我试图用双倍来找到科学计数法,但我找不到任何功能或方法来做到这一点。
我的变量是double,我需要从中获取科学计数法,例如:
3.44828e + 026
我需要从我的double变量中获取数字026。
顺便说一句,这个数字实际上是28个长而不是26个,有没有办法解决这个问题? (不将结果加2)
提前致谢!
最佳答案
如果y
为非负值,这应该可以工作。对于负的y
,结果为1偏移。如果需要,请自己修复。
#include <iostream>
#include <cmath>
int main()
{
double x = 3.44828e+026;
int y = (int)log10(x);
std::cout << y << std::endl;
return 0;
}
输出:
26
关于c++ - 寻找科学计数法(E + XX),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19290391/