c#怎么保留小数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#怎么保留小数相关的知识,希望对你有一定的参考价值。


const float PI = 3.14f;
Console.Write("请输入圆的半径:");
string x = Console.ReadLine();
double r = Convert.ToDouble(x);

Console.WriteLine("圆的面积是:" + Convert.ToString(PI * r * r));

Console.WriteLine("圆的周长是:" + Convert.ToString(PI * 2 * r));
Console.ReadKey();

参考技术A double s = PI * r * r;
Console.WriteLine("圆周长为:" + s.ToString("0.00"));
"0.00"是格式化字符串,小数点后有几个0就是保留几位小数。
参见MSDN的格式化字符串:http://msdn.microsoft.com/zh-cn/library/427bttx3(v=vs.80)
参考技术B 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就保留几位
参考技术C 用 Math.Round函数
Math.Round(IP*2*r,2);表示保留两位有效小数
参考技术D 用string.format("0:F2", Convert.ToString(PI * 2 * r))本回答被提问者采纳

C#保留2位小数几种场景总结

场景1:

  C#保留2位小数,.ToString("f2")确实可以,但是如果这个数字本来就小数点后面三位比如1.253,那么转化之后就会变成1.25.可不可以刚好保留到最后一位不是0的位置?
默认保留2位,如果真的有3位小数,就保留3位,有4位就保留4位。

先说一下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####"); // 1.253

 

场景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");

 

以上是关于c#怎么保留小数的主要内容,如果未能解决你的问题,请参考以下文章

c#保留小数点后两位怎么做?

C#中的decimal怎么保留两位小数

C#中tostring怎么保留小数点后面3位?

C#中怎么对double型取两位小数。

在C#中怎么控制float的值保留小数的位数

c#如何把这句保留2位小数