C++ 获取数字的一部分

C++ 获取数字的一部分,c++,numbers,C++,Numbers,我有很多双字。我想分一杯羹。比如说, 如果数字是13041004236.980835我希望我的程序删除前4位并返回1004236.980835 在C++中最短的方法是什么?< /P> 谢谢 将其转换为字符串,缩短并转换回。\include #include <string> #include <sstream> std::stringstream ss; ss << number; std::string str = ss.str(); str.erase

我有很多双字。我想分一杯羹。比如说,

如果数字是13041004236.980835我希望我的程序删除前4位并返回1004236.980835

在C++中最短的方法是什么?< /P>
谢谢

将其转换为字符串,缩短并转换回。

\include
#include <string>
#include <sstream>

std::stringstream ss;
ss << number;
std::string str = ss.str();

str.erase( 0, 4 );
#包括 std::stringstream-ss;
ss以下是如何运用数学:

auto digits = floor(log10(number)) + 1;
number = fmod(number, pow(10, digits - 4));
您也可以使用来自另一个答案的字符串流方法,但是您需要使用

ss << std::fixed << std::setprecision(std::numeric_limits<double>::digits10);
ss