C# 數字轉字符串


//--------------忙忙碌碌,從代碼的搬運工做起--------------//

  有時候,我們在使用TextBox顯示參數數值時,如果直接轉換成字符串輸出,往往顯示的格式不盡如意,為了能夠轉換成我們想要的格式輸出,我們就需要用到格式化字符串。

  如果想要控制數字轉字符串的顯示精度,可以參考如下:

double i = 123456.78901;
//設置精度為3
string.Format("{0:F3}", i);
string.Format(("{0:0.000}", i);
string.Format(("{0:#.###}", i);
//當實際數字小數點后數字小於3個時,只顯示實際個數,不會補零

  更多細節如下:

格式化字符串:

格式化的格式

string.Format("{ N [, M ][: formatString ]}", arg0, ... argN),在這個格式中:

  1. N是從0開始的整數,表示arg0-argN的索引
  2. M是可選的整數,表示格式化后的參數所占的寬度,如果M是負數,那么格式化后的值就是左對齊的,如果M是正數,那么格式化后的值是右對齊的
  3. formatString是可選的參數,表示格式代碼
  4. argN表示要格式化的值,和N是對應的。

最簡單的格式即string.Format("{0}",arg0)。

格式化標志符

字母  含義
C或c Currency 貨幣格式
D或d Decimal 十進制格式
E或e Exponent 指數格式
F或f Fixed point 固定精度格式
G或g General 常用格式
N或n 用逗號分割千位的數字,比如1234將會被變成1,234
P或p Percentage 百分符號格式
R或r Round-trip  圓整(只用於浮點數)保證一個數字被轉化成字符串以后可以再被轉回成同樣的數字
X或x Hex 16進制格式

類似string.Format("{0:C2}",arg0),其中,C是格式化標志符,2是精度,精度默認是2,因此也可寫成string.Format("{0:C}",arg0)。

示例代碼:

double i = 123456.78;
Console.WriteLine("{0:C}", i);//¥123,456.78,貨幣(如需轉換美元,詳見下方)
Console.WriteLine("{0:C3}", i);//¥123,456.780,精度3,不足補零
Console.WriteLine("{0:D}", 0x123456);//1193046,十進制整數,可用於進制轉換(使用小數會報錯)
Console.WriteLine("{0:D10}", 0x123456);//0001193046,個數10,不足補零
Console.WriteLine("{0:E}", i);//1.234568E+005,科學技術法
Console.WriteLine("{0:E10}", i);//1.2345678000E+005
Console.WriteLine("{0:F}", i);//123456.78,固定精度,默認精度為2
Console.WriteLine("{0:F5}", i);//123456.78000
Console.WriteLine("{0:G}", i);//123456.78,常用格式,G后面帶數字是指保留數字個數,默認全部顯示
Console.WriteLine("{0:G5}", i);//1.2346E+05,設置個數小於實際個數時以科學計數法顯示,保留5個數字
Console.WriteLine("{0:G6}", i);//123457,保留6個數字
Console.WriteLine("{0:G10}", i);//123456.78,設置個數大於實際個數時,保持實際個數,保留8個數字
Console.WriteLine("{0:N}", i);//123,456.78,千位分割
Console.WriteLine("{0:N10}", i);//123,456.7800000000
Console.WriteLine("{0:P}", i);//12,345,678.00%,百分數,默認精度為2
Console.WriteLine("{0:P10}", i);//12,345,678.0000000000%
Console.WriteLine("{0:X}", 123456);//1E240,十六進制整數,可用於進制轉換(使用小數會報錯)
Console.WriteLine("{0:X10}", 123456);//000001E240,個數10,不足補零
Console.WriteLine("{0:R}", i);//123456.78,保留17位有效數字
Console.WriteLine("{0:R}", 0.00001234567890123456789012345);//1.2345678901234568E-05
Console.WriteLine("{0:R}", 0.0001234567890123456789012345);//0.00012345678901234567
Console.WriteLine("{0:R}", 0.1234567890123456789012345);//0.12345678901234568
Console.WriteLine("{0:R}", 1.234567890123456789012345);//1.2345678901234567
Console.WriteLine("{0:R}", 3.4567890123456789012345);//3.4567890123456788
//補充
Console.WriteLine(i.ToString("C", new System.Globalization.CultureInfo("en-US")));//$123,456.78,美元

 圖形化格式字符串

 符號 名稱 含義
0 0占位符 用0填充不足的位數
# 數字占位符 用#代替實際的位數
. 十進制小數點  
, 千位分隔符 用逗號進行千位分割,比如把1000分割成1,000
% 百分符號 顯示一個百分標識
E+0
E-0
e+0
e-0
指數符號 用指數符號格式化輸出
\ 專一字符 用於傳統格式的格式化序列,比如"\n"(新行)
'ABC'
"ABC"
常量字符串  顯示單引號或者雙引號里面的字符串
; 區域分隔符  如果數字會被格式化成整數,負數,或者0,用;來進行分隔
,. 縮放符號 數字除以1000

 示例代碼:

double i = 123456.78;
Console.WriteLine("{0:0.000}", i);//123456.780,0占位符,不足補零
Console.WriteLine("{0:0000000.00}", i);//0123456.78
Console.WriteLine("{0:#.#}", i);//123456.8,#占位符
Console.WriteLine("{0:#.####}", i);//123456.78
Console.WriteLine("{0:0,0}", i);//123,457,千位分隔
Console.WriteLine("{0:0,0.0}", i);//123,456.8
Console.WriteLine("{0:,0.00}", i);//123456.78
Console.WriteLine("{0:#%}", i);//12345678%,百分比
Console.WriteLine("{0:#.#E+0}", i);//1.2E+5,科學計數法
Console.WriteLine("{0:#.#E-0}", i);//1.2E5
Console.WriteLine("{0:#.#E+0}", 0.000000123456789);//1.2E-7
Console.WriteLine("{0:#.#E-0}", 0.000000123456789);//1.2E-7
Console.WriteLine("{0:#.# 'Abc'}", i);//123456.8 Abc,添加字符串
Console.WriteLine("{0:#.#;#.##;<hello>}", i);//123456.8,分號區分正數、負數及零的不同格式化代碼
Console.WriteLine("{0:#.#;#.##;<hello>}", -i);//123456.78
Console.WriteLine("{0:#.#;#.##;<hello>}", 0);//<hello>
Console.WriteLine("{0:0,.}", i);//123,縮放1000
Console.WriteLine("{0:0,.000}", i);//123.457

 參考flyingbread的《使用C#格式化字符串 ~》,詳情請移步:https://www.cnblogs.com/zyh-nhy/archive/2007/10/11/921240.html

//--------------勤勤懇懇,做一只搬運知識的螞蟻--------------//


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM