C#中關(guān)于double.ToString()的用法
C# double.ToString()的用法
C# 中 double 類型的數(shù)據(jù),有時(shí)需要格式化顯示為字符串(保留N位有效數(shù)字或者是保留N位小數(shù)),可以使用 double.ToString("參數(shù)") 方法。
下面列出幾個(gè)常用的方法
(F)Fixed point:string str1=temp.ToString("f1"); ? ? ? ? ? ? ?//保留一位小數(shù) 四舍五入 結(jié)果:3.1 (F)Fixed point:string str2=temp.ToString("f2"); ? ? ? ? ? ? ?//保留兩位小數(shù),四舍五入 下面一次類推 結(jié)果:3.14 (N)Number:string str2=temp.ToString("N"); ? ? ? ? ? ? ? ? ? //保留 結(jié)果:3.14 (G)General (default):string str2=temp.ToString("G"); ? ?//保留 結(jié)果:3.1415926 (P)Percent:string str2=temp.ToString("P"); ? ? ? ? ? ? ? ? ? //保留 結(jié)果:314.16% (E)Scientific:string str2=temp.ToString("E"); ? ? ? ? ? ? ? ? //保留 結(jié)果E:3.141593E+000 (C)Currency:string str2=temp.ToString("C"); ? ? ? ? ? ? ? ?//保留 結(jié)果:¥3.14
C# Double 按有效數(shù)字 ToString
將double轉(zhuǎn)換為n有效數(shù)字的字符
我找了各種帖子包括在微軟文檔搜索 ‘significant digits’;最接近的是ToString(“Gx”)
但是返回是不大于這個(gè)x有效位的字符串, 舉例
double a=1.2; string s=a.ToString("G3");
得到1.2而不是1.20
所以就寫了一個(gè)函數(shù)
? ? ? ? string DoubleToStringSignificantDigits(double a, int SignificantDigits) ? ? ? ? { ? ? ? ? ? ? string formaterG = 'G' + SignificantDigits.ToString("N0"); ? ? ? ? ? ? string strResult = a.ToString(formaterG); ? ? ? ? ? ? int resultLength = SignificantDigits; ? ? ? ? ? ? if (strResult.IndexOf('-') >= 0) resultLength++; ? ? ? ? ? ? if (strResult.IndexOf('.') >= 0) resultLength++; ? ? ? ? ? ? if (Math.Abs(a) < 1) resultLength++; //絕對值小于1,有一個(gè)整數(shù)0不算有效位 ? ? ? ? ? ? if (strResult.Length < resultLength) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? if (strResult.IndexOf('.') < 0) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? strResult += '.'; ? ? ? ? ? ? ? ? ? ? resultLength++; ?? ??? ?} ? ? ? ? ? ? ? ? strResult = strResult.PadRight(resultLength, '0'); ? ? ? ? ? ? } ? ? ? ? ? ? return (strResult); ? ? ? ? ?}
結(jié)果
double[] x = new double[] { 100, 99, 12.12, 1.1234, 1.2, 0.2, 0.12345 , -0.2, -1.2, -123};
轉(zhuǎn)換
DoubleToStringSignificantDigits(x[i], 3)
得到
100
99.0
12.1
1.12
0.200
0.123
-0.200
-1.20
-123
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
c# 預(yù)處理識(shí)別硬幣的數(shù)據(jù)集
這篇文章主要介紹了c# 預(yù)處理識(shí)別硬幣的數(shù)據(jù)集的方法,幫助大家更好的利用c#進(jìn)行深度學(xué)習(xí),感興趣的朋友可以了解下2020-12-12詳解C# 網(wǎng)絡(luò)編程系列:實(shí)現(xiàn)類似QQ的即時(shí)通信程序
本篇主要介紹了c#實(shí)現(xiàn)類似QQ的即時(shí)通信程序 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-12-12C#實(shí)現(xiàn)Windows服務(wù)測試與調(diào)試
這篇文章介紹了C#實(shí)現(xiàn)Windows服務(wù)測試與調(diào)試的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02