📅  最后修改于: 2023-12-03 15:14:02.850000             🧑  作者: Mango
在C++的标准库中,有四个与浮点数格式化相关的标志:std::fixed
、std::scientific
、std::hexfloat
和std::defaultfloat
。这些标志可以帮助程序员控制浮点数的输出格式。下面将分别介绍这四个标志的作用和用法。
std::fixed
是一个用于控制浮点数输出格式的标志。使用该标志后,浮点数将以固定小数位数的形式输出。小数位数可以通过调用std::setprecision
函数来设置。以下是一个示例:
#include <iostream>
#include <iomanip>
int main() {
double number = 3.14159265359;
std::cout << std::fixed << std::setprecision(2) << number << std::endl;
return 0;
}
输出结果为:
3.14
在上面的示例中,std::fixed
将浮点数输出格式设为固定小数位数,即小数点后保留两位。
std::scientific
是一个用于控制浮点数输出格式的标志。使用该标志后,浮点数将以科学计数法的形式输出。精度可以通过调用std::setprecision
函数来设置。以下是一个示例:
#include <iostream>
#include <iomanip>
int main() {
double number = 123456.789;
std::cout << std::scientific << std::setprecision(3) << number << std::endl;
return 0;
}
输出结果为:
1.235e+05
在上面的示例中,std::scientific
将浮点数输出格式设为科学计数法,即以e表示指数形式输出。
std::hexfloat
是一个用于控制浮点数输出格式的标志。使用该标志后,浮点数将以十六进制的形式输出。以下是一个示例:
#include <iostream>
#include <iomanip>
int main() {
double number = 10.125;
std::cout << std::hexfloat << number << std::endl;
return 0;
}
输出结果为:
0x1.40a0000000000p+3
在上面的示例中,std::hexfloat
将浮点数输出格式设为十六进制。
std::defaultfloat
是一个用于恢复浮点数输出格式的标志。如果之前使用了std::fixed
、std::scientific
或std::hexfloat
标志,可以使用std::defaultfloat
将输出格式恢复为默认的格式。以下是一个示例:
#include <iostream>
#include <iomanip>
int main() {
double number = 3.14159;
std::cout << std::fixed << std::setprecision(2) << number << std::endl;
std::cout << std::defaultfloat << number << std::endl;
return 0;
}
输出结果为:
3.14
3.14159
在上面的示例中,第一个std::cout
使用std::fixed
将浮点数输出格式设为固定小数位数,第二个std::cout
使用std::defaultfloat
将输出格式恢复为默认格式。
以上是C++中的std::fixed
、std::scientific
、std::hexfloat
和std::defaultfloat
的介绍和用法,通过这些标志,程序员可以更灵活地控制浮点数的输出格式。