關與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,符合自己的要求


免責聲明!

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



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