类型互相转换

1. string 和 double 互相转换并保留小数

1
2
3
4
5
6
7
8
//doule转string 
string str1 = to_string(3.14);
//int转string
string str2 = to_string(4);
//string转int
int x= atoi(str2.c_str());
//string转double
double y = stof(str1.c_str());

使用模版保留小数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
template<typename T>
string ToString(T val) //doule转string
{
stringstream ss;
ss << setiosflags(ios::fixed) << setprecision(2) << val; //保留两位小数
string str = ss.str();
return str;
}

template<typename T>
T ToDouble(string input) //string转double
{
T result;
stringstream ss;
ss << input;
ss >>result;
result = round(result * 100) / 100; //四舍五入保留两位小数
return result;
}