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
廣告