?? decimaltoken.java
字號:
package parser;
/**
* 這個類用于綜合整數,小數,指數部分形成一個數值類型的對象
* @author zouhao
*/
public class DecimalToken extends Token{
Integral i;
Fraction f;
Exponent e;
double r;
/**
* 構造函數
* @param ti 整數部分
* @param tf 小數部分
* @param te 指數部分
*/
DecimalToken(Integral ti,Fraction tf,Exponent te)
{
type = "Decimal";
i = new Integral(ti);
f = new Fraction(tf);
e = new Exponent(te);
r = getValue();
}
/**
* 構造函數
* @param ti 整數部分
*/
DecimalToken(Integral ti)
{
type = "Decimal";
i = new Integral(ti);
f = null;
e = null;
r = getValue();
}
/**
* 構造函數
* @param ti 整數部分
* @param tf 小數部分
*/
DecimalToken(Integral ti,Fraction tf)
{
type = "Decimal";
i = new Integral(ti);
f = new Fraction(tf);
e = null;
r = getValue();
}
/**
* 構造函數
* @param ti 整數部分
* @param te 指數部分
*/
DecimalToken(Integral ti,Exponent tf)
{
type = "Decimal";
i = new Integral(ti);
e = new Exponent(tf);
f = null;
r = getValue();
}
/**
* 構造函數
* @param t 直接用一個值初始化
*/
DecimalToken(double t)
{
type = "Decimal";
i = null;
f = null;
e = null;
r = t;
}
/**
* 獲得此數值對象的值
* @return 返回對象的值
*/
public double getResult()
{
return r;
}
/**
* 用于返回對象的值
* @return 將值作為字符串類型返回
*/
public String getToken()
{
return toString();
}
/**
* 用于返回對象的值
* @return 將值作為double類型返回
*/
public double getValue()
{
if(f == null && e == null && i!=null)
{
r += i.getValue();
}
else if(f == null && i!=null && e != null)
{
r += i.getValue();
if(e.isPositive())
r *= e.getValue();
else if(!e.isPositive())
r /= e.getValue();
}
else if(e == null && i!=null && f != null)
{
r += i.getValue() + f.getValue();
}
else if(i!=null && e != null && f!= null)
{
r += i.getValue() + f.getValue();
if(e.isPositive())
r *= e.getValue();
else if(!e.isPositive())
r /= e.getValue();
}
return r;
}
public String toString()
{
if(f == null && e == null)
{
return ""+i;
}
else if(e == null)
{
return ""+i+f;
}
return ""+i+f+e;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -