[英]Remove last zeroes after first decimal digit
Hi everyone, I have a random generator of double number with std::uniform_real_distribution<double>
and I want to have a number with only one digit after the dot.大家好,我有一个带有
std::uniform_real_distribution<double>
的双数随机生成器,我想要一个点后只有一位数字的数字。 So I tried round(distro_distance(engine)*10)/10;
所以我尝试
round(distro_distance(engine)*10)/10;
to just left one digit after the dot, but it left zeros too.在点后只留下一位数字,但也留下零。 How can I remove the zeros?
如何删除零?
My random generator:我的随机发生器:
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 };}
Thanks in advance for the help在此先感谢您的帮助
Basically I did like this:基本上我是这样做的:
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;}
So my file prints numbers like "143.2"所以我的文件打印出像“143.2”这样的数字
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.