双重值以ints打印

Double Values Prints out as ints

本文关键字:ints 打印      更新时间:2023-10-16

我正在尝试使用add函数来获取双重值,并用另一个双重值添加以获取答案。我使用get方法/函数获取答案值。答案值仅在int中显示,而不是以双倍的形式显示。例如,12.0 10.0等于22.0,但是当我显示结果时,它只说22.这是我正在处理的代码...

double x = 0.0;
void addValue(double value) 
{ 
  x = value + x;
}
double getValue() 
{
  return x;
}
int main()
{
  addValue(12.0);
  addValue(10.0);
  cout << getValue() << endl;
  return 0;
}

此代码的结果是22我要得到的是22.0

如何解决此问题而不需要使用集合精度?

使用#include <iomanip>

使用std::setprecision
 std::cout << std::setprecision (15) << getValue() << std::endl;

cout如果小数点后的分数为0。因此,如果您需要打印.0值,则需要使用setprecision或使用printf

为了更好地理解您可以遵循此问题如何使用COUT完整地打印一个双重值?

您可以使用std :: setPrecision设置精度,但是它只能保持显着(有意义的)数字来设置精度。在这种特殊情况下,2在22.0中并不重要。因此,如果您真的想打印出22.0,则必须设置固定的精度(将值设置为所需的数字)。您的代码将如下。

#include <iostream>
#include <iomanip>
using namespace std;
double x = 0.0;
void addValue(double value) 
{ 
  x = value + x;
}
double getValue() 
{
  return x;
}
int main()
{
  addValue(12.0);
  addValue(10.0);
  cout << fixed <<std::setprecision(1) << getValue() << endl;
  return 0;
}