首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

關於 C++ cout 輸出精度與字符串長度限制的技術筆記

     編輯:PHP 綜合知識

C++ cout 流輸出行為詳解:精度控制、科學計數法與字符串限制

注意:本文內容屬於 C++ 標準庫 iostream 範疇,非 PHP 技術。 收錄於此或為分類錯誤,但技術內容有參考價值,整理如下。

數值輸出精度規則

cout 默認顯示總位數 6 位(整數位 + 小數位),超出四捨五入:

變量輸出與類型關係

  • int 型:按原型輸出,無精度限制。範圍約 -21 億 ~ 21 億 (32 位有符號)。
  • double 型:≤6 位按原型,>6 位自動切換科學計數法(如 1.23457e+08)。
  • 全球人口約 60 億:超出 int 範圍,必須用 double 或 long double。
  • 賦值越界:編譯器不報錯、不警告,極易產生隱性 Bug。

字符串輸出限制

  • 字符串字面量:理論無長度限制,但受編譯器單行長度限制,過長導致編譯錯誤。
  • 字符數組 (char[]):實測 50,000 字符正常輸出,memset 越界賦值也無報錯(屬未定義行為,極度危險)。

控制輸出格式的正規方法

#include <iomanip>
cout << fixed << setprecision(2) << 3.14159; // 固定 2 位小數: 3.14
cout << scientific << setprecision(4) << 12345.6; // 科學計數法 4 位: 1.2346e+04
cout << setw(10) << setfill('0') << 42; // 寬度 10,前導 0: 0000000042

總結

  • 默認精度 6 位,務必顯式設置 setprecision 避免隱性截斷。
  • 大整數用 long long (C++11) 或 int64_t,浮點用 double/long double。
  • 字符數組操作必須邊界檢查,std::string 更安全。

若需 PHP 輸出格式控制,請參考 printf()、number_format()、sprintf() 等函數。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
代碼輸出說明
cout << 123.4567;123.457四捨五入至 6 位
cout << 123.4564;123.456四捨五入
cout << 123456.1;123456整數位佔 6 位,小數捨去
cout << 123456.5;123457整數位進位