C++ ios 库 - scientific 函数



描述

它用于将 str 流的 floatfield 格式标志设置为 scientific。当 floatfield 设置为 scientific 时,浮点值将使用科学计数法写入:该值始终仅在小数点前显示一位数字,后跟小数点和与精度字段 (precision) 一样多的十进制数字。最后,此表示法始终包含一个指数部分,该部分由字母 e 后跟一个可选符号和三个指数数字组成。

C++98

floatfield 格式标志既是选择性标志又是切换标志:它可以采用如下所示的一个或多个值 -

标志值 设置时的效果
fixed 以定点表示法写入浮点值
scientific 以科学计数法写入浮点值。
(无) 以默认浮点表示法写入浮点值。

C++11

floatfield 格式标志既是选择性标志又是切换标志:它可以采用以下任何值,或者不采用任何值,如下所示 -

标志值 设置时的效果
fixed 以定点表示法写入浮点值。
scientific 以科学计数法写入浮点值。
hexfloat

以十六进制格式写入浮点值。

其值与 (fixed|scientific) 相同

defaultfloat 以默认浮点表示法写入浮点值。这是默认值(与 none 相同,在设置任何其他 floatfield 位之前)。

声明

以下是 std::scientific 函数的声明。

ios_base& scientific (ios_base& str);

参数

str - 受影响的流对象的格式标志。

返回值

它返回参数 str。

异常

基本保证 - 如果抛出异常,则 str 处于有效状态。

数据竞争

它修改了 str。对同一流对象的同时访问可能会导致数据竞争。

示例

以下示例说明了 std::scientific 函数。

#include <iostream>

int main () {
   double a = 3.1415926534;
   double b = 2006.0;
   double c = 1.0e-10;

   std::cout.precision(5);

   std::cout << "default:\n";
   std::cout << a << '\n' << b << '\n' << c << '\n';

   std::cout << '\n';

   std::cout << "fixed:\n" << std::fixed;
   std::cout << a << '\n' << b << '\n' << c << '\n';

   std::cout << '\n';

   std::cout << "scientific:\n" << std::scientific;
   std::cout << a << '\n' << b << '\n' << c << '\n';
   return 0;
}

让我们编译并运行以上程序,这将产生以下结果 -

default:
3.1416
2006
1e-010

fixed:
3.14159
2006.00000
0.00000

scientific:
3.14159e+000
2.00600e+003
1.00000e-010
ios.htm
广告