C# 保留2位小數幾種場景總結


場景1:

先說一下ToString("0.00##")中0和#的區別:
  0 代表占位的。如果ToString("0.00") 這樣就是保留兩位小數,無論小數有多少位或者無小數,結果都是兩位小數。例如 1.1234 那么結果是1.12。如果是1.2 那么結果會補零,為1.20。
  # 代表后面的不是零就被保留,如果是0就去掉。例如ToString("0.##") 那么1.20的話結果是1.2

對於場景1的問題,默認有兩位就是00,其它的如果大於兩位就不是零就保留的話,可以下面這樣寫:

double dd = 1.2530;
            string ret = dd.ToString("0.00####"); 
            Response.Write("A1:" + ret + "<br/>");

            dd = 1.0;
            ret = dd.ToString("0.##"); 
            Response.Write("A2:" + ret + "<br/>");

            dd = 1.1;
            ret = dd.ToString("0.##"); 
            Response.Write("A3:" + ret + "<br/>");


            dd = 123;
            ret = dd.ToString("0.##"); 
            Response.Write("A4:" + ret + "<br/>");

 

場景2:

  根據國際慣例,有時候我們需要對超出的位數“四舍五入”。用C# 實現保留兩位小數的方法有很多,常用的總結如下:

1、Math.Round(0.333333,2);//按照四舍五入的國際標准
2、double dbdata=0.335333; string str1=String.Format("{0:F}",dbdata);//默認為保留兩位
3、float i=0.333333; int j=(int)(i * 100); i = j/100;
4、decimal.Round(decimal.Parse("0.3333333"),2)
5、private System.Globalization.NumberFormatInfo nfi = new System.Globalization.NumberFormatInfo();

  float test=0.333333f;

  nfi.NumberDecimalDigits=2;

  string result=test.ToString("N", nfi);


6、string result= String.Format("{0:N2}",Convert.ToDecimal("0.333333").ToString()); 
7、Convert.ToDecimal("0.33333333").ToString("0.00");


免責聲明!

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



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