阅读双科学记数法,'D'作为C++中的指数前缀

Read double scientific notation with 'D' as exponent prefix in C++

本文关键字:C++ 作为 前缀 指数      更新时间:2023-10-16

我正在尝试读取写为-0.49430978D-02的值,但它们仅以-0.49430978的形式出现。我将字符保存在字符串vs中,并尝试了两者

myval = stod(vs)

以及

sscanf(vs.c_str(), "%le", &myval)

但他们都无法阅读科学记数法中的指数。是因为它是D而不是E吗?如何在c++中正确读取此值?

D 格式是某些 Fortran 实现中常见的不常见浮点表示形式,用于指示双精度(或更高)。 AFAIK,所有其他环境都使用 E 表示浮点数,并且不指示基础精度。

我认为您唯一的选择是将值读取为字符串,用E替换任何D字符,然后用strtod()或等效字符完成处理。