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

場景1:git

  C#保留2位小數,.ToString("f2")確實能夠,可是若是這個數字原本就小數點後面三位好比1.253,那麼轉化以後就會變成1.25.可不能夠恰好保留到最後一位不是0的位置?
默認保留2位,若是真的有3位小數,就保留3位,有4位就保留4位。spa

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


對於場景1的問題,默認有兩位就是00,其它的若是大於兩位就不是零就保留的話,能夠下面這樣寫:orm

double dd = 1.2530;
string ret = dd.ToString("0.00####"); // 1.253

 

場景2:blog

  根據國際慣例,有時候咱們須要對超出的位數「四捨五入」。用C# 實現保留兩位小數的方法有不少,經常使用的總結以下:ci

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

  float test=0.333333f; it

  nfi.NumberDecimalDigits=2; io

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

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

相關文章
相關標籤/搜索