C++中的fixed和setprecision详细用法
作者:野牛程序员:2023-02-21 22:12:00信息竞赛阅读 5576
在 C++ 中,fixed
和 setprecision
是用来控制输出浮点数精度和格式的两个重要工具。
fixed
是一个 C++ 标准库中的输出流修饰符,它用于指示输出的浮点数使用定点表示法而非默认的科学计数法。使用 fixed
后,输出的浮点数会以固定的小数位数格式进行输出。例如,下面的代码输出 3.141593:
double pi = 3.14159265358979323846; std::cout << std::fixed << pi << std::endl;
输出:
3.141593
注意,fixed
是一个全局性质的修饰符,一旦使用,它会一直生效,直到被另外的修饰符覆盖为止。
setprecision
是另一个输出流修饰符,用于指定输出浮点数的小数位数。例如,下面的代码输出 3.1416:
double pi = 3.14159265358979323846; std::cout << std::fixed << std::setprecision(4) << pi << std::endl;
输出:
3.1416
setprecision
的参数是一个整数,它指定输出的小数位数。这意味着,无论浮点数的精度如何,输出将始终使用四舍五入到四个小数位。
需要注意的是,fixed
和 setprecision
都是 C++ 标准库中的流操作符,因此只能用于输出到流中,而不能用于将浮点数格式化为字符串。如果需要将浮点数格式化为字符串,可以使用 C++11 引入的 std::to_string
函数。例如,下面的代码将浮点数 pi 格式化为字符串:
double pi = 3.14159265358979323846; std::string pi_str = std::to_string(pi);
这将得到一个字符串 "3.141593",其中小数位数由实际的精度决定。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892