1

我需要14.3925125E从 istringstream 中读取数字作为格式化输入的一部分。E意思是东方,不是科学记数法。
当我尝试使用input >> double >> char它时,看起来流将数字视为错误的科学并且失败了。我尝试了机械手std::fixedstd::dec但没有帮助。还有什么我可以用的吗?

4

1 回答 1

1

操纵器不会这样做,因为 E 是浮点值如何表示为文本的一部分。例如 14.25E2表示值1425.00

您需要提取子字符串并分别解析它们。没有错误检查,类似 ....

std::string input("14.3925125E");
std::string substring = input.substr(0, input.find('E'));
std::istringstream str(substring);
str >> double_value;
于 2015-03-29T12:01:22.000 回答