C ++ Printing浮动指定的小数位数

时间:2018-02-05 18:29:12

标签: c++ floating-point numbers

我将数字存储在float中,我希望它最多可以打印5个小数位。唯一的问题是我之后不想打印0,也不想实际修改数字。

例如:

  • 1应打印为1 (不是1.00000)
  • 0.5应打印为0.5 (不是0.50000)
  • 0.333333333应打印为0.33333

我知道setprecision确实设置了有效位数,但是当我将其设置为fixed时,它也打印出0。有办法解决这个问题吗?

例如,如果数字是1.33333(正好有5位小数),setprecision(5),则打印出1.3333,这是我想要的。

任何提示都将不胜感激!

修改

#include <iostream>
#include <stdlib.h>
#include <iomanip>
int main()
{
  float a = 1;
  float b = 0.5;
  float c = 0.3333333333333;
  float d = 1.33333;

  std::cout << std::setprecision(5);
  std::cout << a << "\n";
  std::cout << b << "\n";
  std::cout << c << "\n";
  std::cout << d << "\n"; // returns 1.3333
  return 0;
}

0 个答案:

没有答案