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