Этот код:
cout<< to_string(x) + "m ----> " + to_string(x *0.001)+ "km"<<endl;
с этим выводом: 0.002000
Однако я хочу удалить лишние нули в конце, но это должно быть в строке кода, так как у меня много строк, подобных приведенной выше.
Этот код:
cout<< to_string(x) + "m ----> " + to_string(x *0.001)+ "km"<<endl;
с этим выводом: 0.002000
Однако я хочу удалить лишние нули в конце, но это должно быть в строке кода, так как у меня много строк, подобных приведенной выше.
попробуйте этот фрагмент:
cout << "test zeros" << endl;
double x = 200;
cout << "before" << endl;
cout<< std::to_string(x) + "m ----> " + std::to_string(x *0.001)+ "km"<<endl;
std::string str = std::to_string(x * 0.001);
str.erase ( str.find_last_not_of('0') + 1, std::string::npos );
cout << "after" << endl;
cout<< std::to_string(x) + "m ----> " + str + "km"<<endl;
с выходом:
test zeros
before
200.000000m ----> 0.200000km
after
200.000000m ----> 0.2km
это лучше, чем std::setprecision
, потому что вам не нужно решать, сколько num после периода вы хотите сохранить, но пусть реализация найдет это для вас.
Здесь документация для дополнительной информации.
Попробуйте использовать std::setprecsion()
Установить десятичную точность
Задает десятичную точность, которая будет использоваться для форматирования значений с плавающей запятой в операциях вывода.
Итак, в вашем случае вы можете использовать:
std::cout << std::setprecision(3)
Это удалит конечные нули с 0,0020000 до 0,002.
Изменить
Код ниже работает, когда вы хотите использовать to_string в своем коде:
#include <iostream>
using namespace std;
int main(){
int x=1;
string str2 = to_string(x *0.001);
str2.erase ( str2.find_last_not_of('0') + 1, std::string::npos );;
std::cout<<to_string(x)+ "m ----> " + str2+ "km";
}
to_string
, а не std::cout
.
- person BessieTheCookie; 25.05.2020
to_string
в коде. Как объясняется в повторяющемся вопросе, вы не можете запретить to_string
добавлять конечные нули. Если вы делаете cout << x << "m ----> " << x * 0.001 << "km" << endl
, вы можете управлять форматированием с помощью таких вещей, как setprecision
.
- person BessieTheCookie; 25.05.2020