题目:
编写一个程序,将输入的一个字符串表示的实数转换成double型的数值,并输出该数字乘2后的结果。如输入的是“123.456”,则输出为246.912。
代码:
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
int main()
{
string s;
int i, num;
double sum1 = 0, sum2 = 0;
cin >> s;
for (i = 0; i < s.length(); ++i) //strlen(a)用于取输入的长度
{
if (s[i] == '.')
{
num = i + 1; //取小数点在第几位
break;
}
}
//整数部分
for (i = 0; i < num - 1; ++i) sum1 = sum1 * 10 + (s[i] - '0');
//小数部分
for (i = s.length() - 1; i >= num; --i)
{
sum2 = sum2 * 0.1 + (s[i] - '0');
}
sum2 = sum2 * 0.1;
cout << setiosflags(ios::fixed) << setprecision(s.length() - num);
cout << (sum1 + sum2) * 2 << endl;
system("pause");
return 0;
}