1. 程式人生 > >C#中保留N位小數的幾種方法(轉)

C#中保留N位小數的幾種方法(轉)

1.只要求保留N位不四舍5入
   float f = 0.55555f;
           int i =(int)(f * 100);
          f = (float)(i*1.0)/100;//保留小數後2位
2.保留N位,四捨五入  decimal d= decimal.Round(decimal.Parse("0.55555"),2);)//保留小數點後2位
3.保留N位四捨五入
Math.Round(0.55555,2)//保留小數點後2位
4,保留N位四捨五入
double dbdata = 0.55555;
string str1 =  dbdata.ToString("f2");//fN 保留N位,四捨五入
5.保留N位四捨五入
string result = String.Format("{0:N2}", 0.55555);//2位
string result = String.Format("{0:N3}", 0.55555);//3位
6.保留N位四捨五入
double s=0.55555;
result=s.ToString("#0.00");//點後面幾個0就保留幾位
  1. Console.WriteLine("{0:f4}",1.12345);  
  2.             Console.ReadKey();//防止閃退

            Double dValue = 95.12345;

            int iValue = 10000;
            string strValue = "95.12345";
            string result = "";

            result = Convert.ToDouble(dValue).ToString("0.00");//保留小數點後兩位,結果為95.12
            result = Convert.ToDouble(iValue).ToString("0.00");//10000.00 
            result = Convert.ToDouble(strValue).ToString("0.00");//95.12

            result = Convert.ToDouble(dValue).ToString("P");//得到小數點後2位的百分比,自動 加上%號;//9512.35%
            result = Convert.ToDouble(strValue).ToString("f4");//保留小數點後4位;  //95.1235
            //要注意的一點是 Convert.ToDouble一定要是這種雙精度的,不然會報錯。


c#中的ROUND與java、sql的不同:

  1. ROUND()是C#中math的一個成員函式.System.Math.Round(),這個函式有四種用法,  
  1. 最長用的是對小數點位數的舍入.但這和現實生活中的“四捨五入”有一定區別,  
  1. 也有別JAVA中Math.Round(),跟sql中的Math.Round()方法有別.  
  2. C#中Math.round()採用的是所謂“四捨六入五成雙”的銀行家舍入法---要捨得位  
  1. 如果是5則舍入後末位要求是偶數,要捨得位如果不是五  則按四捨五入處理.  
  2.         如:  
  3.         Math.Round(1.2600,2);結果是1.26  
  4.         Math.Round(1.2460,2);結果是1.25  
  5.         Math.Round(1.2550,2);結果是1.25  
  6.         Math.Round(1.2551,2);結果是1.26  
  7.         Math.Round(1.2560,2);結果是1.26  

  1. double s=0.55555;  
  2. result=s.ToString("#0.00");//點後面幾個0就保留幾位
  3. 如果要四捨五入的話,用這個  
  4. double dbdata = 0.55555;  
  5. string str1 = dbdata.ToString("f2");//fN 保留N位,四捨五入