3: 获取数位 例如 1000的数位为 NumLevel.Thousand /// <summary> /// 获取数字的数位 使用log /// </summary> /// <param name="Num"></param> /// <returns></returns> private NumLevel GetNumLevel(double Num) { double numLevelLength; NumLevel NLvl = new NumLevel(); if (Num > 0) { numLevelLength = Math.Floor(Math.Log10(Num)); for (int i = NumLevelExponent.Length - 1; i >= 0; i--) { if (numLevelLength >= NumLevelExponent[i]) { NLvl = (NumLevel)i; break; } } } else { NLvl = NumLevel.Yuan; } return NLvl; } 4:判断数字之间是否有跳位,也就是中文中间是否要加零,例如1020 就应该加零。 /// <summary> /// 是否跳位 /// </summary> /// <returns></returns> private bool IsDumpLevel(double Num) { if (Num > 0) { NumLevel? currentLevel = GetNumLevel(Num); NumLevel? nextLevel = null; int numExponent = this.NumLevelExponent[(int)currentLevel]; double postfixNun = Math.Round(Num % (Math.Pow(10, numExponent)),2); if(postfixNun> 0) nextLevel = GetNumLevel(postfixNun); if (currentLevel != null && nextLevel != null) { if (currentLevel > nextLevel + 1) { return true; } } } return false; }
|