转换成字符串,判断小数点位置
首先判断是否有小数点,如果没有,得到结果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; } }
看不懂再问
需求是什麼,比如 double a = 0.000 是怎麼产生的
如果是输入的字符串,可以通过 string aa = "0.000" 获取精度
再转成double计算,舍入先前的精度获得需要的结果
double d = 4.589;
int precission = 0;
string[] strArr = d.ToString().Split('.');//分开整数与小数部分
if (strArr.GetLength(0) == 2)
{
precission = strArr[1].Length;
}
else
precission = 0;
1)
float f = 321.12345F;
f.ToString("0.00");
这样做无论f是不是整数,都将加上2位小数。
2)
float f = 321.12345F;
f.ToString(".##");
这样做最多显示2位小数
double num = 0.11;
var pos = num.ToString().IndexOf('.');
var len = num.ToString().Length - pos-1;
如果没有小数的话还需要根据pos判断一下。