为什么设置精度做错误?以及什么是设置精度
Why the setprecision do error ? and what is setprecision
我的老师给了我这个,我在添加时遇到了错误
«setprecision(3) <<setiosflags(ios::fixed) »
你能告诉我为什么吗?
#include<iostream>
#include<math.h>
#include<iomanip>
using namespace std;
main()
{
float x1,y1,x2,y2,x3,y3,x4,y4,PQ,QR,RS,SP,Keliling;
cout << "Masukkan koordinat empat titik berbeda (x,y) :n";
cout<< "P(x,y):" ;
cin >> x1>>y1 ;
cout <<"n" ;
cout << "Q(x,y) :" ;
cin >> x2>>y2 ;
cout <<"n" ;
cout << "R(x,y) :" ;
cin>> x3>>y3 ;
cout <<"n" ;
cout << "S(x,y) :" ;
cin >>x4>>y4;
cout <<"n" ;
PQ = sqrt(pow(x2-x1,2)+pow(y2-y1,2));
QR = sqrt(pow(x3-x2,2)+pow(y3-y2,2));
RS = sqrt(pow(x4-x3,2)+pow(y4-y3,2));
SP = sqrt(pow(x1-x4,2)+pow(y1-y4,2));
Keliling = PQ+QR+RS+SP;
cout << "Kelilingnya adalah " << Keliling <<" satuan";
«setprecision(3) <<setiosflags(ios::fixed) »
return 0 ;
}
因为你误解了指令。你不能只是在程序结束时将它转储到代码中自己的行上,并期望它神奇地工作,你不能在上面保留法语引号。
您需要从逻辑上思考程序的作用以及顺序。你想完成什么,你怎么能告诉计算机如何帮助你完成它?
一个好的开始是谷歌搜索setprecision
以了解它是什么以及如何使用它。
此外,您的程序还有其他问题,例如缺少 main
的返回类型。
sestprecision
是一个操纵器,您可以将其传递到流cout
以定义逗号后应显示多少位数字,例如:
cout << setprecision(2) << 0.122312 << endl;
将产生
0.12
它会导致错误,因为您尚未将其放入流中,但没有任何地方 - 它不是一个语句!
该行的问题在于它不是有效的 cpp 语句
SetPrecision 语句需要连接到输出流,并且您使用的是标准输出。更正将像这样进行
cout << setprecision(2) << fixed << endl;
同样,正如 ppreferencesbean 所说,您的 main 函数应该包含一个返回类型。
int main()
{
//code;
}
相关文章:
- 使用设置精度时如何阻止数字向上舍入?
- 如何仅使用一次固定<<设置精度(2)?或者至少恢复到默认行为?
- 如何在C++中只打印小数点而不设置限制,但动态设置精度
- c++只关心2位小数,没有设置精度
- 有没有一种方法可以在不设置精度的情况下设置小数位数
- C++浮点数与双胞胎设置精度奇数(新手)
- 无法获得固定的设置精度双精度以显示小数位
- 使用设置精度更新变量值
- 设置精度C
- C++设置精度
- 设置精度应用于旧的 C 样式代码
- 使用设置精度在C++中舍入小数点时出现问题
- C++ 浮点截断和设置精度逻辑错误
- 字符串流设置精度和浮点格式
- 将数字从字符串流转换为具有设置精度的字符串
- 如何指定设置精度舍入
- 设置精度和浮点数
- 为什么设置精度做错误?以及什么是设置精度
- 设置精度 + 固定 - 没有不必要的零的打印值
- 如何在单个 COUT 中对多个变量设置精度