日期:2014-05-17  浏览次数:20423 次

截取小数点后几位的代码有点不懂
C# code

public string VarStr(string sString, int nLeng)
    {
        int index = sString.IndexOf(".");
        if (index == -1 || index + 2 >= sString.Length)
            return sString;
        else
            return sString.Substring(0, (index + nLeng + 1));//这句没有看明白
    }



前面都看懂了是给出的sString的数没有小数或者小数位数小于nLeng时返回原值
假设sString=34.56789 , nLeng=2,解释一下else那句,谢谢

------解决方案--------------------
假设sString=34.56789 , nLeng=2 nLeng为小数点后保留几位

那么:int index = sString.IndexOf("."); //index=2

return sString.Substring(0, (index + nLeng + 1));//sString.Substring(0,5)=34.56

Substring的截取格式:参数1:开始索引位置 参数2:结束索引位置的前一个位置
所以要额外 +1