C#中关于double.ToString()的用法
目录
- C# double.ToString()的用法
- 下面列出几个常用的方法
- C# Double 按有效数字 ToString
- 将double转换为n有效数字的字符
- 所以就php写了一个函数
- 总结
C# double.ToString()的用法
C# 中 double 类型的数据,有时需要格式化显示为字符串(保留N位有效数字或者是保留N位小数),可以使用 double.ToString("参数") 方法。
下面列出几个常用的方法
(F)Fixed point:string str1=temp.ToString("f1"); //保留一位小数 四舍五入 结果:3.1 (F)Fixed point:string str2=temp.ToString("f2"); //保留两位小数,四舍五入 下面一次类推 结果:3.14 (N)Number:string str2=temp.ToString("N"); //保留 结果:3.14 (G)General (default):string str2=temp.ToString("G"); //保留 结果:3.1编程客栈415926 (P)Percent:string str2=temp.ToString("P"); //保留 结果:314.16% (E)Scientific:string str2=temp.ToString("E"); //保留 结果E:3.141593E+000 (C)Currency:string str2=temp.ToString("C"); //保留 结果:¥3.14
C# Double 按有效数字 ToString
将double转换为n有效数字的字符
我找了各种帖子包括在微软文档搜索 ‘significant digits’;最接近的是ToString(“Gx”)
但是返回是不大于这个x有效位的字符串, 举例
double a=1.2; string s=a.ToString("G3");
得到1.2而不是1.20
所以就写了一个函数
string DoubleToStringSignificantDigits(double a, int SignificantDigits) { string formaterG = 'G' + SignificantDigits.ToSt开发者_开发入门ring("N0"); string strResult = a.ToString(formaterG); int resultLength = SignificantDigits; if (strResult.IndexOf('-') >= 0) resultLength++; if (strRewww.devze.comsult.IndexOf('.') >= 0) resultLength++; if (Math.Abs(a) < 1) resultLength++; //绝对值小于1,有一个整数0不算有效位 if (strResult.Length <http://www.devze.com; resultLength) { if (strResult.IndexOf('.') < 0) { strResult += '.'; resultLength++; } strResult = strResult.PadRight(resultLength, '0'); js} return (strResult); }
结果
double[] x = new double[] { 100, 99, 12.12, 1.1234, 1.2, 0.2, 0.12345 , -0.2, -1.2, -123};
转换DoubleToStringSignificantDigits(x[i], 3)得到10099.012.11.120.2000.123-0.200-1.20-123
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
精彩评论