在cpp中打印浮点值的问题

  • 本文关键字:问题 cpp 打印 c++
  • 更新时间 :
  • 英文 :

#include <iostream>
#include<bits/stdc++.h> 
using namespace std;
int solve(int t){
float ans = static_cast<float>(320)/100;
cout<<fixed<<setprecision(2)<<ans;
}
int main(){
int t=320;
cout<<solve(t);
return 0;
}

输出:3.204745728

如何得到3.20

的输出

当您只想输出一个东西时,您使用了两次cout。当您没有从solve返回任何值时,您也输出了solve的返回值,这解释了您看到的额外数字。

要么在solve中做cout,要么在main中做,不要在两个地方都做。

第一种方法

#include <iostream>
using namespace std;
void solve(int t){
float ans = static_cast<float>(320)/100;
cout<<fixed<<setprecision(2)<<ans; // print the answer
}
int main(){
int t=320;
solve(t);
return 0;
}

第二种方式

#include <iostream>
using namespace std;
float solve(int t){
float ans = static_cast<float>(320)/100;
return ans;                        // return the answer
}
int main(){
int t=320;
cout<<fixed<<setprecision(2)<<solve(t);
return 0;
}

代码的另一个问题是,您将参数320传递给solve,但您没有在那里使用它。你可能想改变

float ans = static_cast<float>(t)/100;
从函数中返回值和在函数中打印值对于初学者来说很容易混淆,但这是完全不同的事情。上面的第一个代码输出函数中的值,上面的第二个代码返回函数中的值(并在main中打印)。

最新更新