C# 科學計數法轉換成數字


     /// <summary>
        /// 判斷輸入的數是否是科學計數法。如果是的話,就會將其換算成整數並且返回,否則就返回false。
        /// </summary>
        /// <param name="num"></param>
        /// <param name="CompleteNum"></param>
        /// <returns></returns>
        private bool ChkNum(string num, ref decimal CompleteNum)
        {
            bool result = false;
            bool resultSymbol = num.Contains("*");
            bool result0 = num.Contains("^");
            if ((resultSymbol == true) && (result0 == true))
            { //當數字中有*和^的時候,進行下面的判斷
                int IntSymbol = num.IndexOf("*");
                int Symbol0 = num.IndexOf("^");
                if (((Symbol0 - IntSymbol) == 3))
                {//當*在^前面的時候
                    string numA = num.Substring(0, IntSymbol);//截取*號前面的數字(基數);
                    string numB = num.Substring(IntSymbol+1, Symbol0 - IntSymbol-1);//截取10;
                    string numC = num.Substring(Symbol0+1, num.Length - Symbol0-1);//獲得冪次數
                    Regex regNum0 = new Regex(@"^(\-|\+)?\d+(\.\d+)?$");
                    Regex regNum2 = new Regex(@"^-[1-9]\d*$|^[1-9]\d*$");
                    if ((regNum0.IsMatch(numA)) && (numB == "10") && (regNum2.IsMatch(numC)))
                    {
                        decimal dcNumA;
                        decimal.TryParse(numA,out dcNumA);
                        decimal dcNumC;
                        decimal.TryParse(numC, out dcNumC);//將冪次數轉換成decimal類型
                        decimal zhengshu = 10;
                        if (dcNumC > 0)
                        {//當冪次數為整數的時候
                            for (int i = 0; i < dcNumC - 1; i++)
                            {
                                zhengshu *= 10;
                            }
                        }
                        else
                        {//當冪次數為負數的時候
                            for (int i = 0; i < Math.Abs(dcNumC) + 1; i++) 
                            {
                                zhengshu /= 10;
                            }
                        }
                        CompleteNum = dcNumA * zhengshu;
                        result = true;
                    }
                    else
                    {
                        result = false;
                    }
                }
                else
                {
                    result = false;
                }
            }
            else
            {
                result = false;
            }
            return result;
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM