正确使用 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.5”而不是预期的“0.5000”。出现这种情况是因为在执行除法时整数数据类型隐式转换为浮点,但精度尚未专门应用于整数到浮点的转换。
要正确显示尾随零,需要附加一个操纵器 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 操纵器指示 std::cout 以定点表示法输出浮点数,其中包括尾随零。 std::set precision(4) 操纵器指定输出应具有四位小数的精度。
通过合并 std::fixed 操纵器,代码片段的输出现在可以正确显示尾随零,从而产生正如预期的“0.5000”。
以上是为什么 `std::cout. precision()` 不按预期显示尾随零?的详细内容。更多信息请关注PHP中文网其他相关文章!