如何将C+中的尾数和指数转换为双精度+; 我试图从C++中的尾数和指数创建一个双或浮点< /代码>;i、 e:我有这个号码:1472E-2(尾数=1472指数=2)

如何将C+中的尾数和指数转换为双精度+; 我试图从C++中的尾数和指数创建一个双或浮点< /代码>;i、 e:我有这个号码:1472E-2(尾数=1472指数=2),c++,floating-point,double,C++,Floating Point,Double,我想得到这个数字:14.72;这样做的目的只是打印这些数字 我试过ldexp和std::setprecision看起来你有人类可读的科学记数法(带十进制指数),而不是double内部使用的二进制指数。这就是为什么ldexp不适合您的原因 如果您有字符串“1472e-2”,则可以使用strtod对其进行解析,从而得到14.72 如果在两个独立的变量中有1472和-2,则可以应用科学符号的定义 double z = x * pow(10.0, y);

我想得到这个数字:14.72;这样做的目的只是打印这些数字


我试过
ldexp
std::setprecision

看起来你有人类可读的科学记数法(带十进制指数),而不是
double
内部使用的二进制指数。这就是为什么
ldexp
不适合您的原因

如果您有字符串
“1472e-2”
,则可以使用
strtod
对其进行解析,从而得到
14.72

如果在两个独立的变量中有1472和-2,则可以应用科学符号的定义

double z = x * pow(10.0, y);