为什么设置精度做错误?以及什么是设置精度

Why the setprecision do error ? and what is setprecision

本文关键字:设置 精度 什么 错误 为什么      更新时间:2023-10-16

我的老师给了我这个,我在添加时遇到了错误

«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;
}