📄 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 + -