double类型如何保留小数点后1位,不要四舍五入

时间:2021-09-25 09:47:16
比如
12.877,我需要得出的是12.8,这个应该如何做?

15 个解决方案

#1


static void Main(string[] args)
        {
            double a = 12.8777;
            string num = a.ToString();
            num = num.Substring(0, num.IndexOf(".", 0) + 2);
            Console.WriteLine(double.Parse(num));

        }

#2


double a = 12.877;
a=Math.Floor(a*10)/10;

#3


引用 2 楼 dalmeeme 的回复:
C# code
double a = 12.877;
a=Math.Floor(a*10)/10;


正解!

#4


d = 12.877;
string result = ((double)((int)(d*10))/10).ToString();

#5


有很多种方法  用正则表达式匹对 然后 substr 截取字符

或者C#里直接截取字符

#6


找到小数点的位置,然后往后多取一位就可以了

#7


引用 2 楼 dalmeeme 的回复:
C# code
double a = 12.877;
a=Math.Floor(a*10)/10;

这个方法比较实在吧

#8


引用 2 楼 dalmeeme 的回复:
C# code
double a = 12.877;
a=Math.Floor(a*10)/10;


顶!~正解!

#9


引用 2 楼 dalmeeme 的回复:
C# code
double a = 12.877;
a=Math.Floor(a*10)/10;


顶了。。

#10


截取字符串

#11


引用 2 楼 dalmeeme 的回复:
C# code
double a = 12.877;
a=Math.Floor(a*10)/10;


+++

#12


如果是负数,那么a = -Math.Floor(-a * 10)/10;

#13


double.Parse("222.526").ToString("0.0")

#14


来个另类点的
double a=12.877;
string na=a.ToString().SubString(0,a.ToString().IndexOf(".")+1);//小数点后一位
double b=Convert.ToDouble(na)//即为所得

#15


static void Main(string[] args)
  {
  double a = 12.8777;
  string num = a.ToString();
  num = num.Substring(0, num.IndexOf(".", 0) + 2);
  Console.WriteLine(double.Parse(num));

  }

像这样截取不就行了

#1


static void Main(string[] args)
        {
            double a = 12.8777;
            string num = a.ToString();
            num = num.Substring(0, num.IndexOf(".", 0) + 2);
            Console.WriteLine(double.Parse(num));

        }

#2


double a = 12.877;
a=Math.Floor(a*10)/10;

#3


引用 2 楼 dalmeeme 的回复:
C# code
double a = 12.877;
a=Math.Floor(a*10)/10;


正解!

#4


d = 12.877;
string result = ((double)((int)(d*10))/10).ToString();

#5


有很多种方法  用正则表达式匹对 然后 substr 截取字符

或者C#里直接截取字符

#6


找到小数点的位置,然后往后多取一位就可以了

#7


引用 2 楼 dalmeeme 的回复:
C# code
double a = 12.877;
a=Math.Floor(a*10)/10;

这个方法比较实在吧

#8


引用 2 楼 dalmeeme 的回复:
C# code
double a = 12.877;
a=Math.Floor(a*10)/10;


顶!~正解!

#9


引用 2 楼 dalmeeme 的回复:
C# code
double a = 12.877;
a=Math.Floor(a*10)/10;


顶了。。

#10


截取字符串

#11


引用 2 楼 dalmeeme 的回复:
C# code
double a = 12.877;
a=Math.Floor(a*10)/10;


+++

#12


如果是负数,那么a = -Math.Floor(-a * 10)/10;

#13


double.Parse("222.526").ToString("0.0")

#14


来个另类点的
double a=12.877;
string na=a.ToString().SubString(0,a.ToString().IndexOf(".")+1);//小数点后一位
double b=Convert.ToDouble(na)//即为所得

#15


static void Main(string[] args)
  {
  double a = 12.8777;
  string num = a.ToString();
  num = num.Substring(0, num.IndexOf(".", 0) + 2);
  Console.WriteLine(double.Parse(num));

  }

像这样截取不就行了