我有一個double類型的數字。我想要得到它的一部分。例如,獲取編號的一部分
如果數量13041004236.980835我希望我的程序來刪除第4位,並返回1004236.980835
什麼是C++做這個的最短途徑++?
謝謝!
我有一個double類型的數字。我想要得到它的一部分。例如,獲取編號的一部分
如果數量13041004236.980835我希望我的程序來刪除第4位,並返回1004236.980835
什麼是C++做這個的最短途徑++?
謝謝!
這裏是如何用數學做到這一點:
auto digits = floor(log10(number)) + 1;
number = fmod(number, pow(10, digits - 4));
您可以使用從對方的回答字符串流的方式爲好,但你需要使用
ss << std::fixed << std::setprecision(std::numeric_limits<double>::digits10);
爲了不失去精確度(假設你使用雙精度)。
將其轉換爲字符串,縮短並將其轉換回來。
#include <string>
#include <sstream>
std::stringstream ss;
ss << number;
std::string str = ss.str();
str.erase(0, 4);