string 和 double 有问题,相等后得到另一个数字
Troubles with string and double, get another number after equating
计算完一个数后,我需要得到这个数的几位数字。我将它转换为字符串,并打印一个数字,但在一段代码中,它工作正常(只打印一个数字),但在我将它等同于另一个变量后,程序打印 2 个数字。
#include "stdafx.h"
#include <iostream>
#include <chrono>
#include <ctime>
#include <sstream>
using namespace std;
int main()
{
time_t seconds;
int res = 0;
seconds = time(NULL);
double nump = seconds;
cout.precision(45);
for (int i = 1; i <= 100; i++) {
nump = nump /10;
}
std::ostringstream strs;
strs.precision(55);
strs << nump;
std::string str = strs.str();
cout << str[str.size() - 9] << endl; // here we get a gidit from the string (e.g. 5)
res = str[str.size() - 9];
cout << res << endl; // here we get a number (e.g. 49)
system("pause");
return 0;
}
我不明白这是怎么回事。请帮忙!
计算完一个数后,我需要得到这个数的几位数字。我将它转换为字符串,并打印一个数字,但在一段代码中,它工作正常(只打印一个数字),但在我将它等同于另一个变量后,程序打印 2 个数字。
#include "stdafx.h"
#include <iostream>
#include <chrono>
#include <ctime>
#include <sstream>
using namespace std;
int main()
{
time_t seconds;
int res = 0;
seconds = time(NULL);
double nump = seconds;
cout.precision(45);
for (int i = 1; i <= 100; i++) {
nump = nump /10;
}
std::ostringstream strs;
strs.precision(55);
strs << nump;
std::string str = strs.str();
cout << str[str.size() - 9] << endl; // here we get a gidit from the string (e.g. 5)
res = str[str.size() - 9];
cout << res << endl; // here we get a number (e.g. 49)
system("pause");
return 0;
}
我不明白这是怎么回事。请帮忙!