如何在C ++中从尾数和指数转换为Double

时间:2019-02-07 19:45:18

标签: c++ floating-point double exponent mantissa

我正在尝试使用c ++的尾数和指数创建双精度或浮点型

即:我有这个数字:1472E-2尾数= 1472指数= -2

我正在尝试获取该数字:14.72,其目的只是打印这些数字。

我尝试了ldexp,std :: setprecision

1 个答案:

答案 0 :(得分:1)

您似乎拥有人类可读的科学计数法(带有十进制指数),而不是double内部使用的二进制指数。这就是ldexp对您不起作用的原因。

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

如果两个单独的变量中分别有1472和-2,则可以应用科学计数法的定义

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