本人是做水文水利方面的,涉及到 水的流量,需要將計算過的值 保留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,符合自己的要求