如何将 C++ 数字格式设置为一定精度?
Posted
技术标签:
【中文标题】如何将 C++ 数字格式设置为一定精度?【英文标题】:How to set up C++ Number Formatting to a certain precision? 【发布时间】:2011-01-20 14:10:13 【问题描述】:我知道您可以使用 iomanip 为浮点数设置精度标志(例如,有 2.0000 而不是 2.00)。
对于整数,有没有办法做到这一点?
我希望十六进制数显示为 000e8a00 而不仅仅是 e8a00 或 00000000 而不是 0。
这在 C++ 中是否可行,使用标准库?
【问题讨论】:
【参考方案1】:使用机械手:
std::cout << std::setfill('0') << std::setw(8) << std::hex << 0 << std::endl;
没有机械手:
std::cout.fill('0');
std::cout.width(8);
std::cout.setf(std::ios::hex, std::ios::basefield);
std::cout << 42 << std::endl;
【讨论】:
【参考方案2】:你也可以使用 boost::format 来做到这一点,我发现这通常可以节省输入:
std::cout << boost::format("%08x\n") % 0xe8a00;
它还允许一些不错的代码重用,如果您有多个地方需要进行相同的格式化:
boost::format hex08("%08x"); std::cout【讨论】:
以上是关于如何将 C++ 数字格式设置为一定精度?的主要内容,如果未能解决你的问题,请参考以下文章