如果有三个string类型的工资,如何求得平均值?
即如果有三个数字型字符串:
string a="1.2",b="2.2",c="3.2";
double avg;
求这三个数的平均值并保存到avg中?
这里就涉及到字符串向数字的转换了。说实话有时候不得不吐槽一下C++,这种工作在Python中直接用eval()、int()等可以直接转换,C++就不行,还要自己来弄,麻烦死了。
话不多说,直接上代码:
#include<sstream>
double str_to_double(string s)
{
double a;
string res = s;
stringstream ss;
ss << res;
ss >> a;
return a;
}
这样就可以实现从字符串向数字的转换了,再用返回值就平均值就可以啦!
#include<typeinfo>
int main()
{
string a = "3.444";
cout << typeid(a).name() << endl;
cout << typeid(str_to_double(a)).name() << endl;
}
输出结果: