c - 如何从科学记数法解析长双

标签 c pow atoi long-double

我有一个文本文件,其中的数字以科学记数法 存储为一个字符串 字符,其中一些字符最多有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/

相关文章:

c++ - caffe cudnn 版本 4 & 5

C 字符串行为和 atoi 函数

java - 有人能解释一下舍入误差是什么意思吗?

c - 总结命令行

C、atoi()产生段错误

c - 突破线程限制、段错误

c++ - 重新着色 SDL2 纹理

c++ - 使用具有路径变量的 C 运行 Bat 文件

c - Xlib编程中Sleep()的执行

c++ - 带有两个 mpf_t 的 gmp pow