我正在尝试读取写为 -0.49430978D-02
的值,但它们只会以 -0.49430978
的形式出现。我将字符保存在字符串 vs
中,并且都尝试过
myval = stod(vs)
还有
sscanf(vs.c_str(), "%le", &myval)
但他们都未能读取科学计数法中的指数。是因为它是 D
而不是 E
吗?如何在 c++
中正确读取此值?
最佳答案
D
format 是一种不常见的浮点表示法,对于某些 Fortran 实现来说是常见的,用于指示 double (或更高)。据我所知,所有其他环境都使用 E
用于 float ,不指示底层精度。
我认为您唯一的选择是将值作为字符串读取,替换任何 D
带有 E
的字符然后用 strtod()
完成处理或等效的。
关于c++ - 在 C++ 中以 'D' 作为指数前缀读取双科学记数法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34844994/