其他分享
首页 > 其他分享> > 在C中将科学记数法转换为十进制

在C中将科学记数法转换为十进制

作者:互联网

我希望能够在我的代码中以十进制输出而不是科学输出所有情况.

如果我有122041e 08那么我希望它显示为122041000

如果我有4.6342571e 06那么我希望它显示为4634257.1

… 等等.

使用我的代码,4.6342571e 06的输出是4634257.100000

void conversion(double counts)
{
  std::ostringstream ss;
  ss << std::fixed << counts;
  std::cout << ss.str() << " MeV";
}

有人可以向我解释为什么它会添加0到最后,如果可以删除它们.

解决方法:

输出字符串流中有一个名为precision的方法.您可以使用它来调整逗号后的位数.它默认为6,缺少的数字用0填充(因此名称固定).为了实现4634257.1的显示,将精度设置为1:

void conversion(double counts)
{
  std::ostringstream ss;
  ss.precision(1);
  ss << std::fixed << counts;
  std::cout << ss.str() << " MeV";
}

标签:scientific-notation,c,decimal
来源: https://codeday.me/bug/20190826/1730707.html