C#中保留N位小數的幾種方法(轉)
阿新 • • 發佈:2019-02-11
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就保留幾位 |
- Console.WriteLine("{0:f4}",1.12345);
- 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的不同:
-
ROUND()是C#中math的一個成員函式.System.Math.Round(),這個函式有四種用法,
- 最長用的是對小數點位數的舍入.但這和現實生活中的“四捨五入”有一定區別,
- 也有別JAVA中Math.Round(),跟sql中的Math.Round()方法有別.
- C#中Math.round()採用的是所謂“四捨六入五成雙”的銀行家舍入法---要捨得位
- 如果是5則舍入後末位要求是偶數,要捨得位如果不是五 則按四捨五入處理.
- 如:
- Math.Round(1.2600,2);結果是1.26
- Math.Round(1.2460,2);結果是1.25
- Math.Round(1.2550,2);結果是1.25
- Math.Round(1.2551,2);結果是1.26
- Math.Round(1.2560,2);結果是1.26
- double s=0.55555;
- result=s.ToString("#0.00");//點後面幾個0就保留幾位
- 如果要四捨五入的話,用這個
- double dbdata = 0.55555;
- string str1 = dbdata.ToString("f2");//fN 保留N位,四捨五入