2014-04-03 75 views
2

我有一個double類型的數字。我想要得到它的一部分。例如,獲取編號的一部分

如果數量13041004236.980835我希望我的程序來刪除第4位,並返回1004236.980835

什麼是C++做這個的最短途徑++?

謝謝!

回答

3

這裏是如何用數學做到這一點:

auto digits = floor(log10(number)) + 1; 
number = fmod(number, pow(10, digits - 4)); 

您可以使用從對方的回答字符串流的方式爲好,但你需要使用

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

爲了不失去精確度(假設你使用雙精度)。

0

將其轉換爲字符串,縮短並將其轉換回來。

5
#include <string> 
#include <sstream> 

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

str.erase(0, 4);