我试图用双倍来找到科学计数法,但我找不到任何功能或方法来做到这一点。

我的变量是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/

10-11 21:57
查看更多