C# double类型数值怎样获得是精确到多少位小数(求精度)

2025-03-29 19:01:28
推荐回答(5个)
回答1:

转换成字符串,判断小数点位置

首先判断是否有小数点,如果没有,得到结果0

如果有小数点,使用indexof判断小数点位置,然后根据字符串总长度,如123.45,得到小数点位置为3,总长度为6,那么就得到的结果就是6-1-3=2,得到结论,如果小数点位置在a,总长度为b,那么结果就是b-1-a

private int GetValue(string Value) { string strValue = Value.ToString(); if (strValue.Contains(".")) { int MaxLength = strValue.Length; int Index = strValue.IndexOf("."); return MaxLength - 1 - Index; } else { return 0; } }

看不懂再问

回答2:

需求是什麼,比如 double a = 0.000 是怎麼产生的
如果是输入的字符串,可以通过 string aa = "0.000" 获取精度
再转成double计算,舍入先前的精度获得需要的结果

回答3:


        double d = 4.589;
        int precission = 0;
        string[] strArr = d.ToString().Split('.');//分开整数与小数部分
        if (strArr.GetLength(0) == 2)
        {
            precission = strArr[1].Length;
        }
        else
            precission = 0;

回答4:

1)
float f = 321.12345F;
f.ToString("0.00");
这样做无论f是不是整数,都将加上2位小数。

2)
float f = 321.12345F;
f.ToString(".##");
这样做最多显示2位小数

回答5:

double num = 0.11;
var pos = num.ToString().IndexOf('.');
var len = num.ToString().Length - pos-1;

如果没有小数的话还需要根据pos判断一下。