c++简单编程问题:怎么小数后面的精度无法随条件改变而改变

C++语言 码拜 7年前 (2017-05-04) 1802次浏览
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int  i ,sum=1;
double number=0.0;
for (i = 1; i <=10; i++)
{
sum = 1;
for (int n = 1; n <= i; n++)
sum *= n;
number += 1.0 / sum;
cout << number << endl;  //输出number
if(fabs(number) < 1e-10)
break;
}
cout << “e的近似值为: “<<number+1.0<< endl;
return 0;
}
}c++简单编程问题:怎么小数后面的精度无法随条件改变而改变
c++简单编程问题:怎么小数后面的精度无法随条件改变而改变
本人在if条件前输出了number,它的值变化:
c++简单编程问题:怎么小数后面的精度无法随条件改变而改变
条件是本人本人任意填的,不过小数精度总是2.71828,百思不得其解……………………………小白求指导惑。c++简单编程问题:怎么小数后面的精度无法随条件改变而改变
解决方案

60

可以这样:

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	int  i ,sum=1;
	double number=0.0;
	for (i = 1; i <=10; i++)
	{
		sum = 1;
		for (int n = 1; n <= i; n++)
			sum *= n;
		number += 1.0 / sum;
		cout << fixed << setprecision(9) << number << endl; //小数输出9位
		if(fabs(number) < 1e-10)
			break;
	}
	cout << "e的近似值为: "<<number+1.0<< endl;
	return 0;
}

10


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明c++简单编程问题:怎么小数后面的精度无法随条件改变而改变
喜欢 (0)
[1034331897@qq.com]
分享 (0)