」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 精度字段實際上如何與“fmt.Printf”中的“%g”一起工作?

精度字段實際上如何與“fmt.Printf”中的“%g”一起工作?

發佈於2024-11-08
瀏覽:601

How Does the Precision Field Actually Work with `%g` in `fmt.Printf`?

fmt.Printf 對 %g 的寬度和精度字段的意外行為

理解不明確的文檔

fmt.Printf格式化欄位的文件對於浮點值指出:

「對於浮點值,寬度設定的最小寬度欄位
和精度設定小數點後的位數,如果
適當的話,除了% g/%G它設定總位數。它實際上指的是“精度”,而不是“寬度”。

%.9g 的真實行為

與 %.9g 應產生總共 9 位有效數字的直覺相反,它實際上只考慮小數點後的數字。

例如,123456.789 將被格式化為 123.4e 03,因為 %.9g 有效地截斷了所有前導零。

相反,0.0000012345 將被格式化為 1.2345e-06,因為 %.9g 考慮小數點後的所有有效數字。

的影響寬度和精度

寬度欄位指定整個格式化的最小寬度字串,包括小數點和指數(如果有)。

精度字段,如上所述,設定小數點後的有效位數。

對於 %g,精度欄位覆蓋寬度欄位。但是,如果格式化字串超出指定寬度,它將超出指定寬度。

給定範例的說明

回想一下,此範例涉及使用以下格式格式化以下浮點值: .9g:

0.0606060606060606
  • 0.3333333333333333
  • 0.05
  • 0.4
  • 0.1818181818181818
  • 0.0606060606060606:精度 9 截斷前導零,得到 0.060606060606:精度 9 截斷前導零,得到 0.06060606060606 寬度。
  • 0.3333333333333333:與第一個範例類似,產生的字串 0.333333333 適合 10 的寬度。
  • 0.05:僅具有2位元有效數字,0.05用空格填充以滿足最小寬度10。
  • 0.4:與0.05類似,0.4也用空格填充以滿足最小寬度10。
  • 0.1818181818181818:精度為 9 結果為 0.181818182 ,尾隨2 被四捨五入。該字串的寬度在 10 以內。
最新教學 更多>
  • 如何用JavaScript動態建立連結?
    如何用JavaScript動態建立連結?
    使用 JavaScript 建立連結您關於在 JavaScript 中建立連結的問題是一個常見問題。透過使用 createElement() 方法產生新的錨元素,可以相對輕鬆地實現此過程。 透過利用appendChild() 方法,您可以將表示連結文字的文字節點附加到錨元素。您也可以設定 href ...
    程式設計 發佈於2024-11-08
  • 如何使用 C++ system() 執行參數包含空格的外部應用程式?
    如何使用 C++ system() 執行參數包含空格的外部應用程式?
    C system() 呼叫因包含空格的多個參數而失敗在C 中透過system() 呼叫外部應用程式時,請確保正確處理下列參數至關重要:包含空格。如果可執行路徑和參數都包含空格,則可能會發生錯誤。 底層錯誤機制system()本質上使用cmd /C執行指定的指令。處理命令列時,cmd 遵循有關引號字元...
    程式設計 發佈於2024-11-08
  • 受 Go 啟發的處理 fetch API 的方法
    受 Go 啟發的處理 fetch API 的方法
    Javascript錯誤處理有時會令人困惑,特別是在使用fetch時,如果您使用await,則需要將其包裝在try catch區塊中來處理錯誤,我們都知道這是頭痛 如果我告訴你我們可以做這樣的事情怎麼辦 import { get } from "./eavfetch"; interface Book...
    程式設計 發佈於2024-11-08
  • C 和 C++ 中的內聯函數
    C 和 C++ 中的內聯函數
    介绍 C添加了inline关键字,可以为函数定义添加前缀,如: inline int max_int( int a, int b ) { return a > b ? a : b; } 给编译器一个“提示”,程序总体上可能会从内联函数.中受益 已内联的函数在调用它的每...
    程式設計 發佈於2024-11-08
  • JavaScript 初學者:精進基礎所需了解的一切
    JavaScript 初學者:精進基礎所需了解的一切
    JavaScript 入門?這是你應該知道的! JavaScript 可以說是網路上最強大且同時流行的程式語言,推動著從互動式網站到行動應用程式的一切。如果您剛開始嘗試深入研究 JavaScript,那似乎相當令人畏懼。好處是 JavaScript 對初學者很友好,而且即時練習也很容易。下面,您可...
    程式設計 發佈於2024-11-08
  • PHP 可以傳遞匿名函數作為參數嗎?
    PHP 可以傳遞匿名函數作為參數嗎?
    在 PHP 中將函數作為參數傳遞在 PHP 中,透過在 PHP 5.3 中引入匿名函數,可以接受函數作為參數。 0及以上。這為更動態和模組化的程式設計提供了可能性。 匿名函數可讓您定義沒有名稱的函數。它們通常被定義為 lambda 表達式,您可以在其中指定參數和要執行的程式碼。例如:$anonFun...
    程式設計 發佈於2024-11-08
  • 下載網頁到ESP或簡單可程式控制器
    下載網頁到ESP或簡單可程式控制器
    為了將網頁儲存到ESP8266的FLASH中,我特地用delphi編寫了一個軟體工具。 該軟體工具從一個資料夾中讀取所有網頁檔案(包括html、css、js、圖片等),並將其打包為二進位檔案。 將ESP8266的GPIO0接地即可啟動,ESP8266進入串口下載模式。 然後使用下載軟體選擇打包...
    程式設計 發佈於2024-11-08
  • 保護您的資料:如何建立不可破解的 SQL 和 MySQL 資料庫副本
    保護您的資料:如何建立不可破解的 SQL 和 MySQL 資料庫副本
    鎖定前規劃的審慎措施可確保 SQL 或 MySQL 資料庫一旦轉換為唯讀狀態,即可按預期運行,並且仍可供指定使用者群組存取。這種遠見也保證了資料庫在將來需要更新或更改時可以安全地解鎖。 將資料庫設定為唯讀有一定的吸引力,這會引起 DBA 的共鳴。就好像資料庫已經成熟並準備好走向世界,不受不斷更新需...
    程式設計 發佈於2024-11-08
  • 使用攔截器自訂獲取並在 nuxt 3 中登錄
    使用攔截器自訂獲取並在 nuxt 3 中登錄
    如果您使用過 Nuxt,您可能遇到過方便的 useFetch 可組合項目: <script setup lang="ts"> const { data, status, error, refresh, clear } = await useFetch('/api/modules') &l...
    程式設計 發佈於2024-11-08
  • React原始碼中MessageChannel的使用
    React原始碼中MessageChannel的使用
    這篇文章我們分析React原始碼中MessageChannel的用法。 我們先來了解什麼是MessageChannel。 訊息頻道 Channel Messaging API 的 MessageChannel 介面允許我們建立一個新的訊息通道並透過它的兩個 MessagePort...
    程式設計 發佈於2024-11-08
  • 如何在 CSS 中縮排後續換行標籤行?
    如何在 CSS 中縮排後續換行標籤行?
    縮排換行標籤文字的後續行當面臨表單寬度的限制時,標籤文字可以換行到多行,從而美觀的擔憂。雖然第一行由於輸入元素的存在而縮進,但後續行可能不會縮進,從而產生不均勻的外觀。 要僅使用CSS 實現縮排的第二行和後續行,請考慮使用以下方法:要僅使用CSS 實現縮排的第二行和後續行,請考慮使用以下方法:將輸入...
    程式設計 發佈於2024-11-08
  • 如何在CSS中模糊背景影像而不模糊內容?
    如何在CSS中模糊背景影像而不模糊內容?
    CSS 在保持內容清晰度的同時對背景圖像進行模糊處理嘗試在CSS 設定中模糊背景圖像時,通常會遇到內容(文字或其他元素)也變得模糊的問題。這就是 z-index 和偽元素的概念發揮作用的地方。 要模糊背景圖像而不影響內容,可以採用以下方法:創建背景容器:將背景圖像包含在div或其他容器中並為其分配一...
    程式設計 發佈於2024-11-08
  • 啞的
    啞的
    大家好,我是Misti-sage,DOOF的唯一創造者: 動態的 輸出 針對進行了最佳化 靈活性。 (我是編碼新手,所以我的大部分(如果不是全部)DOOF 工作都是由 ChatGPT 協助的。) 我歡迎任何可以幫助改進 DOOF(也稱為 Darfensmirg)的人。 <!DOCTYPE ...
    程式設計 發佈於2024-11-08
  • 為什麼 Go 正規表示式 \\b 邊界對於拉丁字元會失敗?
    為什麼 Go 正規表示式 \\b 邊界對於拉丁字元會失敗?
    \b Go 正規表示式中拉丁文字元的邊界在Go 正規表示式的世界中, \b 邊界選項有一個輕微的怪癖處理拉丁字符時。當嘗試定義包含拉丁字元(例如重音元音和特殊字元)的單字時,就會出現此問題。 考慮以下範例,我們希望使用 \b 邊界選項來匹配單字「vis」:import ( "fmt...
    程式設計 發佈於2024-11-08
  • Node.js 中與 WebSockets 和 Socket.IO 的即時通信
    Node.js 中與 WebSockets 和 Socket.IO 的即時通信
    现代 Web 应用程序通常需要实时通信,无论是聊天系统、实时更新、协作编辑还是通知。传统的 HTTP 通信不足以满足实时应用程序的需要,因为它依赖于请求-响应模式。这就是 WebSockets 发挥作用的地方,它允许服务器和客户端之间进行全双工通信。 在本文中,我们将探讨: WebSocket 是什...
    程式設計 發佈於2024-11-08

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3