菜鳥的C#學習(四)

文章目錄

  • 一、格式說明符
    • 1.1、數字格式說明符(適用于數值類型:int, double, decimal 等)
      • 1. 標準數字格式
      • 2. 自定義數字格式
    • 1.2、日期時間格式說明符(適用于 DateTime, DateTimeOffset)
      • 1. 標準日期時間格式
      • 2. 自定義日期時間格式
    • 1.3、枚舉格式說明符(適用于 enum 類型)
    • 1.4、組合格式示例
  • 二、
  • 三、
  • 四、

一、格式說明符

C# 中的格式說明符用于格式化各種數據類型的字符串表示,主要分為以下幾類,按數據類型分類列舉并提供組合示例:

1.1、數字格式說明符(適用于數值類型:int, double, decimal 等)

1. 標準數字格式

  • C/c:貨幣格式(自動添加貨幣符號,受當前文化影響)

    Console.WriteLine($"{1234.56:C}");  // ¥1,234.56(中文環境)
    
  • D/d:十進制整數格式(指定位數時不足補0)

    Console.WriteLine($"{123:D5}");     // 00123(固定5位)
    
  • E/e:科學計數法(E為大寫,e為小寫)

    Console.WriteLine($"{1234.56:E3}"); // 1.235E+003(保留3位小數)
    
  • F/f:固定小數位格式

    Console.WriteLine($"{1234.567:F2}"); // 1234.57(保留2位小數)
    
  • G/g:通用格式(自動選擇最簡潔的表示)

    Console.WriteLine($"{1234.567:G4}"); // 1235(總位數4位,四舍五入)
    
  • N/n:帶千分位分隔符的數字

    Console.WriteLine($"{1234567:N2}"); // 1,234,567.00
    
  • P/p:百分比格式(數值乘以100并加%)

    Console.WriteLine($"{0.123:P1}");   // 12.3%(保留1位小數)
    
  • X/x:十六進制格式(X大寫,x小寫)

    Console.WriteLine($"{255:X2}");     // FF(2位大寫)
    Console.WriteLine($"{255:x4}");     // 00ff(4位小寫)
    

2. 自定義數字格式

  • 0:占位符(位數不足補0,超出則原樣顯示)
  • #:占位符(位數不足不補0,超出則原樣顯示)
  • .:小數點
  • ,:千分位分隔符(可重復表示比例縮放,如 ,, 表示除以100萬)
  • %:百分比(數值乘以100)
  • \:轉義字符(顯示特殊符號)

示例

// 整數部分至少3位,小數部分固定2位
Console.WriteLine($"{12.3:000.00}");   // 012.30// 整數部分可選,小數部分最多2位(不補0)
Console.WriteLine($"{1234.567:###.##}"); // 1234.57// 千分位分隔+比例縮放(除以1000,顯示為"千")
Console.WriteLine($"{1234567:###,}k");   // 1235k(四舍五入到千位)// 混合百分比和自定義格式
Console.WriteLine($"{0.1234:00.0%}");    // 12.3%

1.2、日期時間格式說明符(適用于 DateTime, DateTimeOffset)

1. 標準日期時間格式

  • d:短日期(如 2023/10/05
  • D:長日期(如 2023年10月5日
  • t:短時間(如 14:30
  • T:長時間(如 14:30:45
  • f:完整日期+短時間(如 2023年10月5日 14:30
  • F:完整日期+長時間(如 2023年10月5日 14:30:45
  • g:常規日期+短時間(如 2023/10/05 14:30
  • G:常規日期+長時間(如 2023/10/05 14:30:45
  • s:可排序日期時間(如 2023-10-05T14:30:45,ISO 8601)
  • u:UTC可排序時間(如 2023-10-05 14:30:45Z

示例

DateTime dt = new DateTime(2023, 10, 5, 14, 30, 45);
Console.WriteLine($"{dt:d}"); // 10/5/2023
Console.WriteLine($"{dt:G}"); // 10/5/2023 14:30:45

2. 自定義日期時間格式

  • y/yy/yyy/yyyy:年(如 23/2023
  • M/MM:月(1-12/01-12
  • d/dd:日(1-31/01-31
  • h/hh:12小時制時(1-12/01-12
  • H/HH:24小時制時(0-23/00-23
  • m/mm:分(0-59/00-59
  • s/ss:秒(0-59/00-59
  • f/ff/fff:毫秒(1位/2位/3位)
  • t:上午/下午(A/P
  • z/zz/zzz:時區偏移(如 +08/+08:00

示例

DateTime dt = new DateTime(2023, 10, 5, 14, 30, 45, 123);
// 格式:年-月-日 時:分:秒.毫秒 時區
Console.WriteLine($"{dt:yyyy-MM-dd HH:mm:ss.fff zzz}"); 
// 輸出:2023-10-05 14:30:45.123 +08:00

1.3、枚舉格式說明符(適用于 enum 類型)

  • G/g:默認(顯示枚舉名, Flags 組合時用逗號分隔)
  • F/f:Flags 組合時強制顯示所有名稱(即使未標記 Flags)
  • D/d:顯示枚舉的基礎數值
  • X/x:顯示基礎數值的十六進制形式

示例

[Flags]
enum MyEnum { A = 1, B = 2, C = 4 }
MyEnum val = MyEnum.A | MyEnum.C;Console.WriteLine($"{val:G}"); // A, C(名稱組合)
Console.WriteLine($"{val:D}"); // 5(基礎數值)
Console.WriteLine($"{val:X}"); // 00000005(十六進制)

1.4、組合格式示例

  1. 數字+日期組合
var data = new { Amount = 1234.56, Date = new DateTime(2023, 10, 5) };
Console.WriteLine($"{data.Date:yyyy-MM-dd} 交易金額:{data.Amount:C2}");
// 輸出:2023-10-05 交易金額:¥1,234.56
  1. 自定義數字+轉義字符
double ratio = 0.7532;
Console.WriteLine($"完成率:{ratio:00.00%}{ratio:0.##})");
// 輸出:完成率:75.32%(0.75)
  1. 時間+毫秒精度
DateTime dt = DateTime.Now;
Console.WriteLine($"當前時間:{dt:HH:mm:ss.fff}");
// 輸出:當前時間:15:42:36.789

說明

  • 格式說明符區分大小寫(如 Xx 分別對應大小寫十六進制)。
  • 可通過 IFormatProvider 自定義文化(如指定 CultureInfo.InvariantCulture 避免地區差異)。
  • 組合使用時,多個格式說明符需按類型規則拆分(如數字和日期需分別指定格式)。

二、

三、

四、

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/90970.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/90970.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/90970.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于黑馬教程——微服務架構解析(二)

本篇文章基于黑馬程序員的微服務課程內容,結合個人學習過程中的理解與思考進行整理。本節將圍繞以下幾個問題展開:什么是網關和配置管理前面那篇文章,我們了解如何把一個單體的項目拆成分布式微服務項目,并且講解一下各個服務之間…

Text2SQL智能問答系統開發(一)

開發一個面向企業的chatBI工作流 已完成 基礎 Text2SQL 功能實現 實現用戶輸入自然語言問題后,系統能夠自動生成 SQL 并執行返回結果。用戶交互優化 支持用戶通過補充信息對查詢進行調整,提升易用性。模糊時間處理機制 對“最近”“近期”等模糊時間關…

Python HTML模塊詳解:從基礎到實戰

一、模塊體系全景圖 Python生態中處理HTML的工具可分為三大層級: 標準庫基礎層:html模塊 html.parser第三方增強層:BeautifulSoup(搭配解析器)專業級工具層:lxml requests-html 二、標準庫核心模塊詳解…

PyTorch常用Tensor形狀變換函數詳解

PyTorch常用Tensor形狀變換函數詳解 在PyTorch中,對張量(Tensor)進行形狀變換是深度學習模型構建中不可或缺的一環。無論是為了匹配網絡層的輸入要求,還是為了進行數據預處理和維度調整,都需要靈活運用各種形狀變換函數…

自主智能Agent如何重塑工作流自動化:技術、經濟與未來展望

自主智能Agent的崛起與工作流自動化的范式革命2025年7月,當OpenAI向付費用戶推出具備網頁瀏覽和代碼執行能力的ChatGPT Agent時,工作流自動化領域迎來了一場靜默但徹底的革命。這款不再滿足于簡單問答的智能體,在一個安全的虛擬計算機環境中運…

技術架構、行業應用、工具鏈整合、挑戰應對及未來趨勢五大模塊,引用多個權威來源數據與開源項目實現細節。

以下是一份關于AI技術落地的實戰經驗總結報告,結合代碼示例、可視化圖表與行業案例,內容分為技術架構、行業應用、工具鏈整合、挑戰應對及未來趨勢五大模塊,引用多個權威來源數據與開源項目實現細節。AI技術落地實戰指南:從架構設…

第 9 篇:神經網絡初探——當AI擁有了“大腦”,世界從此不同

《人工智能AI之機器學習基石》系列⑨ 專欄核心理念: 用通俗語言講清楚機器學習的核心原理,強調“洞察 + 技術理解 + 應用連接”,構建一個完整的、富有啟發性的知識體系。

音頻焦點 Android Audio Focus 進階

舊焦點處理 示例調用鏈: requestAudioFocus() → propagateFocusLossFromGain_syncAf() → handleFocusLossFromGain()。 系統事件(如來電)→ 強制焦點變化 → handleFocusLossFromGain()。 函數 propagateFocusLossFromGain_syncAf 焦點持有者發生的焦點丟失通知 主要功能…

MFC UI對話框

文章目錄對話框模態對話框創建銷毀關閉CDialog::OnCancel()EndDialog()CDialog::DestroyWindow()非模態對話框創建銷毀關閉delete this對話框 模態對話框 ??阻塞父窗口??,強制用戶先處理對話框。關閉前父窗口無法響應事件。 創建 推薦:非指針方式…

RabbitMQ--@RabbitListener及@RabbitHandle

兩者區別 在 Spring AMQP 中,RabbitListener 和 RabbitHandler 是處理 RabbitMQ 消息的核心注解,但職責和使用場景完全不同。以下從 定義、區別、場景、示例 逐層解析:一、核心定義1. RabbitListener作用:標記 方法或類 為 Ra…

【基于CKF的IMM】MATLAB例程,CV和CT兩個模型下的IMM,二維,濾波使用CKF(容積卡爾曼濾波),附下載鏈接

本程序實現了基于交互多模型(IMM)容積卡爾曼濾波(CKF)的多模型融合定位方法,并與純CV?CKFCV-CKFCV?CKF(勻速模型)和CT?CKFCT-CKFCT?CKF(勻角速度轉彎模型)方法對比。…

AI資訊日報 - 2025年07月28日

AI資訊日報 | 2025年07月28日 周一 今日核心要點 精華提煉 技術突破 ? 騰訊混元:開源發布、3D技術 ? 書生Intern:開源發布、多模態 企業動態 ? AI工具集:協同創作、視頻生成 數據概覽分類數量重點關注技術突破2 條開源發布、3D技術企業動態…

大語言模型 LLM 通過 Excel 知識庫 增強日志分析,根因分析能力的技術方案(1):總體介紹

文章大綱 1. 核心目標 2. 系統總體架構 3. Google Cloud 端到端方案(含無 RAG & RAG 雙模式) 3.1 無 RAG:Function-Calling 查表模式 3.2 RAG:托管式向量檢索 4. 開源輕量級方案 5. 數字孿生聯合驗證(實驗性) 6. 知識圖譜增強(Neo4j) 7. 監控與持續優化(CometLLM)…

Deepseek + browser-use 輕松實現瀏覽器自動化

在數字化時代,瀏覽器應用廣泛,瀏覽器自動化可大幅提升效率。Deepseek 是強大的智能語言模型,能精準解析復雜指令,browser - use 是專注瀏覽器操作的工具,提供豐富 API 接口,支持主流瀏覽器的各類自動化操作…

開疆智能ModbusTCP轉Profient網關連接西門子PLC與川崎機器人配置案例

本案例是西門子PLC與川崎機器人通過Profient轉ModbusTCP網關進行通訊轉換的配置案例,西門子作為profinet主站,機器人作為ModbusTCP服務器。配置過程:機器人配置川崎機器人控制器提供了RS232、以太網的通信接口,同時也可通過加裝選…

Docker多主機網絡連接:實現跨主機通信

Docker 是一種流行的容器化平臺,它可以幫助開發人員更方便地構建、發布和管理應用程序。在 Docker 中,容器是獨立運行的應用程序包裝,包含了運行所需的所有文件、庫和環境變量。Docker 提供了多種網絡連接方式,使得容器之間可以進…

OSPF筆記

一、OSPF基礎1、技術背景(RIP中存在的問題)RIP中存在最大跳數為15的限制,不能適應大規模組網周期性發送全部路由信息,占用大量的帶寬資源路由收斂速度慢以跳數作為度量值存在路由環路可能性每隔30秒更新2、OSPF協議特點沒有跳數限…

kotlin基礎【3】

Kotlin Playground: Edit, Run, Share Kotlin Code Online 資料&#xff1a;kotlin實戰 第一章 data class Person(val name: String,val age:Int?null)//允許接受以age為空&#xff0c;當為空將它賦值為null,如果不這么寫直接寫age:Int?是否可以fun main(args:Array<St…

Java-數構二叉樹

1.樹 1.1概念 樹是一種非線性的數據結構&#xff0c;它是由n個有限節點組成一個具有層次關系。這種結構有以下特點&#xff1a; 一個特殊的結點&#xff0c;稱為根節點&#xff0c;根節點沒有前驅節點除根節點以外&#xff0c;其余節點分成M個互不相交的集合。每個集合又是一…

編程中水合的理解

在編程中&#xff0c;水合&#xff08;Hydration&#xff09; 是一個常見概念&#xff0c;尤其在 前端開發 和 服務端渲染&#xff08;SSR&#xff09; 場景中頻繁出現。它的核心含義是&#xff1a;將靜態內容“激活”為交互式動態內容。1. 水合的本質簡單理解&#xff1a;水合…