在所有声明的双精度但整数结果中打印带有函数的圆的面积,为什么

print the area of the circle with function in all declared double but integer result, why?

本文关键字:函数 打印 为什么 结果 声明 双精度 整数      更新时间:2023-10-16

我正在学习 c++,我必须做这个练习,我必须计算并打印出用户输入的带有射线的圆的面积。这似乎是有效的,但结果它不是双精度而是 int 类型。为什么?提前谢谢。这里的代码:

#include <iostream>
double area_f(double raggio_f); //prototype
using namespace std;
    int main(){
        double raggio, area;
        cout << "inserire il raggio: " << endl;
        cin >> raggio;
        area = area_f(raggio);
        cout << area;
        return 0;
    }
    double area_f(double raggio_f){
        double risultato;
        risultato=raggio_f*raggio_f*3,14;
        return (risultato);
    }

语句:

risultato=raggio_f*raggio_f*3,14;

正在使用 C++ 的逗号运算符,该运算符丢弃第一个结果,并返回第二个结果 (14)。请改用 3.14。

risultato=raggio_f*raggio_f*3,14;

有一个错字,3,14 vs 3.14.它C++有效(逗号运算符),但结果不会是您所期望的。

您需要对小数使用句号表示法:

risultato=raggio_f*raggio_f*3.14;

它是整数的原因是3是一个整数,它忽略了14

下面的语句中的 3.14 而不是 3,14

利苏塔托=raggio_f*raggio_f*3,14;

逗号运算符存在于 C++ 中,因此给出不同的结果,而不是提供语法错误。