簡體   English   中英

刪除第一個十進制數字后的最后一個零

[英]Remove last zeroes after first decimal digit

大家好,我有一個帶有std::uniform_real_distribution<double>的雙數隨機生成器,我想要一個點后只有一位數字的數字。 所以我嘗試round(distro_distance(engine)*10)/10; 在點后只留下一位數字,但也留下零。 如何刪除零?

我的隨機發生器:

cities random_cities(){

std::vector<std::string>cities_names
{
    "Katowice", "Częstochowa", "Sosnowiec", "Gliwice", "Zabrze", "Bielsko-Biała ", "Bytom", "Rybnik", "RudaŚląska", "Tychy", "DąbrowaGórnicza", "Chorzów", "Jaworzno", "Jastrzębie-Zdrój", "Mysłowice", "Żory", "Będzin", "Racibórz", "Świętochłowice", "Cieszyn", "Zawiercie", "Mikołów", "Knurów", "Myszków", "Czeladź", "Żywiec", "Wisła", "Ustroń", "Skoczów", "Szczyrk"
};

const int MAX { 150 };
static std::default_random_engine engine(std::chrono::system_clock::now().time_since_epoch().count());
std::uniform_int_distribution<int> distro_cities (0, cities_names.size() - 1);
std::uniform_real_distribution<double> distro_distance(0,MAX);

std::string city_1=cities_names[distro_cities(engine)], city_2=cities_names[distro_cities(engine)];

double random_distance = round(distro_distance(engine)*10)/10;

std::cout.precision(1);
return { city_1, city_2, city_1!=city_2 ? random_distance : 0 };}

在此先感謝您的幫助

基本上我是這樣做的:

std::string to_string(const cities &c){
std::ostringstream dis;
dis<<c.distance;

std::string str=c.first_city+" "+c.second_city+" "+dis.str();

return str;}

所以我的文件打印出像“143.2”這樣的數字

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM