如何C ++数字格式设置一定的精度?
-
22-09-2019 - |
题
据我所知,可以使用了iomanip设置精度标志为浮点数(例如具有2.0000,而不是2.00)。
有可能的方式做到这一点,对于整数?
我想一个十六进制数,以显示作为000e8a00而不仅仅是e8a00或00000000,而不是0。
这是可能在C ++中,使用标准库?
解决方案
使用操纵器:
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;
其他提示
您也可以用升压为此::格式的,我觉得这往往可以节省打字:
std::cout << boost::format("%08x\n") % 0xe8a00;
这也使得一些不错的代码重用,如果您有多个地方,你需要做相同的格式:
boost::format hex08("%08x"); std::cout << hex08 % 0xe8aa << std::endl;
不隶属于 StackOverflow