关与C# ToString 时保留n位有效数字
本人是做水文水利方面的,涉及到 水的流量,需要将计算过的值 保留3位有效数字。
网上找了些代码,都不怎么管用,
看到 ToString("G3") ,可以用
(12.567).ToString("G3");
显示结果为 :12.7 ,自动自舍五入
但是当需要 处理的数字大于1000时,结果就变了
(3212.567).ToString("G3");
显示结果为 :3.21E+03 ,不是我想要的结果 3210
3.21E+03 的 意思为 3.21 × 103 结果为 3210
根据此所以自己写了个处理代码
public static string QFormat(double dblQ) { string Q = dblQ.ToString("G3"); if(Q.Contains("E")) { string[] arr = Q.Split(new string[] { "E+" }, StringSplitOptions.RemoveEmptyEntries); long val = Convert.ToInt64(Convert.ToDouble(arr[0]) * Math.Pow(10, Convert.ToDouble(arr[1]))); Q = val.ToString(); } return Q; }
这样返回的结果 就为需要的结果了
QFormat(3121.567);
结果显示为 3210,符合自己的要求
哪位大神,要是有更简单的办法请奉上,谢谢
感谢 WPF QQ群的 通知帮我找到了更简单的办法
一句话就搞定
/// <summary> /// 流量Q的格式化 取三位有效数字 /// </summary> public static string QFormat(double dblQ) { return double.Parse(dblQ.ToString("G3")).ToString(); }
QFormat(3121.567);
结果依然显示为 3210,符合自己的要求
作者:金小鳄
声明:原创博客请在转载时保留原文链接或者在文章开头加上本人博客地址,如发现错误,欢迎批评指正。凡是转载于本人的文章,不能设置打赏功能,如有特殊需求请与本人联系!