std::cout. precision() 和尾随零
理解 std::cout. precision() 的正确用法至关重要显示浮点数时。在本文中,我们将研究一个具体示例来解决意外行为。
初始代码和问题
考虑以下代码,该代码尝试显示以下结果将两个整数除以浮点数:
#include <iostream> #include <stdlib.h> int main() { int a = 5; int b = 10; std::cout.precision(4); std::cout << (float)a / (float)b << "\n"; return 0; }
此代码预计会显示 0.5000,但它却打印出 0.5。这种差异是由于原始数据类型是整数的性质而产生的。
解决方案:std::fixed 操纵器
要显示浮点数的尾随零,您必须将 std::fixed 操纵器传递给 std::cout。此操纵器确保十进制表示使用定点表示法,保留尾随零。
#include <iostream> #include <stdlib.h> #include <iomanip> int main() { int a = 5; int b = 10; std::cout << std::fixed; std::cout << std::setprecision(4); std::cout << (float)a / (float)b << "\n"; return 0; }
使用 std::fixed 操纵器,代码现在可以正确打印 0.5000。 std::set precision() 操纵器仍然负责指定所需的小数位数。
以上是为什么 `std::cout. precision()` 不显示浮点数的尾随零?的详细内容。更多信息请关注PHP中文网其他相关文章!