我有一个文本文件,其中的数字以科学记数法 存储为一个字符串 字符,其中一些字符最多有20
位。例如,2.3456789e-015
。我需要将其转换为 long double 以便对其执行一些数学运算。
我怎样才能做到这一点?
long double number = 2.3456789e-015;
我知道我可以像这样声明一个long double,但是当我将数字作为字符串并且需要分别指定基数和指数时,麻烦就来了。 pow()
函数只对doubles 有效,cpowl()
无法在printf
中格式化。保持精度很重要!!
最佳答案
如果你想将字符串转换为 long double,使用 [stold][1]
如果你想printf
long double,使用%Lf
。
关于c - 如何从科学记数法解析长双,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28470758/