函式
<ios> <iostream>

std::defaultfloat

ios_base& defaultfloat (ios_base& str);
使用預設的浮點數表示法
將流 strfloatfield 格式標誌設定為 defaultfloat

floatfield 設定為 defaultfloat 時,浮點數值將使用預設表示法寫入:表示法最多包含流的小數精度precision)所需的有效數字,包括小數點(如果存在)前後的數字。

floatfield”格式標誌既是選擇性標誌,也是切換標誌:它可以接受以下任何值,或者不接受任何值

標誌值設定時的效果
fixed以定點表示法寫入浮點值。
scientific以科學計數法寫入浮點值。
hexfloat以十六進位制格式寫入浮點值。
此值與 (fixed|scientific) 相同
defaultfloat以預設浮點表示法寫入浮點值。這是預設值(與無值相同,在設定任何其他 floatfield 位之前)。

對於標準流,floatfield 格式標誌在初始化時設定為此值(defaultfloat)。

引數

str
受影響的 floatfield 格式標誌的流物件。
因為此函式是一個操縱符,它被設計為在不帶引數的情況下,與流上的插入 (<<) 和提取 (>>) 操作結合使用(見下例)。

返回值

引數 str

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// hexfloat floatfield
#include <iostream>     // std::cout, std::hexfloat, std::defaultfloat

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

  std::cout.precision(5);

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

  std::cout << '\n';

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

  return 0;
}

可能的輸出
hexfloat:
0x1.921fb5p+1
0x1.f58000p+10
0x1.b7cdfep-34

defaultfloat:
3.14159
2006
1e-010


資料競爭

修改 str。對同一個流物件的併發訪問可能導致資料競爭。

異常安全

基本保證:如果丟擲異常,str 處於有效狀態。

另見