在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