打印没有科学格式的双精度并四舍五入到最接近的整数[关闭]
Posted
技术标签:
【中文标题】打印没有科学格式的双精度并四舍五入到最接近的整数[关闭]【英文标题】:Print double without scientific format & rounded to nearest integer [closed] 【发布时间】:2016-05-23 10:29:37 【问题描述】:我需要在不使用指数符号/部分的情况下打印四舍五入的整数。 我目前正在使用它来打印四舍五入的小数。
std::cout << std::llround(n) << n;
但是,对于大数字,它仍然会这样打印
1264744611.26474e+08
请给点建议? 我的问题与question 不同,因为它不考虑四舍五入。在尝试使用 llround 进行修复时,我得到的数字尾随 .000000
【问题讨论】:
Making C++ cout not use scientific notation的可能重复 不,因为它不负责四舍五入。我刚试过 llround & 一起固定。但数字尾随 .000000n
的值到底是什么,你想怎么打印,当前输出有什么不同?
std::llround
返回long long
。它不应该被格式化为浮点数。发布您可以编写的最小程序,该程序可以编译、链接和显示问题。
【参考方案1】:
查看您发送到 std::cout 的内容...
std::cout << std::llround(n) << n;
...两个值没有任何中间标点符号或空格。在它们之间放一个换行符或其他东西,我想你会发现代码正在做它应该做的事情。例如
std::cout << std::llround(n) << "\n" << n;
【讨论】:
以上是关于打印没有科学格式的双精度并四舍五入到最接近的整数[关闭]的主要内容,如果未能解决你的问题,请参考以下文章