我觉得这题写的不标准!!!C++进

来源:百度知道 编辑:UC知道 时间:2024/05/15 16:11:38
首先看题目
直到最后一项的绝对值小于10-7为止./*注小于反面是大于等于都能运行*/
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{int s=1;double n=1,t=1,pi=0;
while((fabs(t))>1e-7)/*书上写的是大于,我试了下用>=结果也正确,感觉书上写的太粗心了,不知道我的观点是否正确,望指点*/
{pi=pi+t;n=n+2;s=-s;t=s/n;}
pi=pi*4;
cout<<"pi="<<setiosflags(ios::fixed)<<setprecision(6)<<pi<<endl;
return 0;}
谢谢!!!虽然几乎没有影响,但是=也是有存在的可能...既然都是对的,觉得应该养成这种习惯.写上>=好!

楼3,怎么一说?为什么呢?t为双精度型

在这种情况下,〉和〉=都是正确的。浮点数的比较不能直接和0进行比较,而是和一个相对较小的值,比如10-7,10-8。这个相对较小的值要根据题目要求的精度而定。在这里,〉和〉=对题目的结果几乎没有影响。

不要尝试对浮点数用等号比较
操作浮点数的时候,认为只有大于和小于就行了

楼上的说得非常正确,同意