DTFloat.java
上传用户:afrynkmhm
上传日期:2007-01-06
资源大小:1262k
文件大小:2k
源码类别:

编译器/解释器

开发平台:

Others

  1. package tinybasic;
  2. //import javax.swing.*;
  3. public class DTFloat extends DTDataType {
  4.     protected double d;
  5.     public DTFloat(Scope scope,DTDataType tbd){
  6. super(scope,FLT_VAR);
  7. setFloat(tbd);
  8.     }
  9.     
  10.     public DTFloat(Scope scope,double d){
  11. super(scope,FLT_VAR);
  12. this.d=d;
  13.     }
  14.     
  15.     public DTFloat(Scope scope,String s){
  16. super(scope,INT_VAR);
  17. if(false){  // 1.2
  18.     // note that parseDouble is not in 1.1 so we fake it.
  19.     // d = Double.parseDouble(s);
  20. } else {  //1.1
  21.     Double t=new Double(s);
  22.     d=t.doubleValue();
  23. }
  24. }
  25.     
  26.     public void setInteger(DTDataType tbd){
  27. setInteger(tbd.getInteger());
  28.     }
  29.     
  30.     public void setFloat(DTDataType tbd){
  31. setFloat(tbd.getFloat());
  32.     }
  33.     
  34.  
  35.     public void setFloat(double d){
  36. this.d=d;
  37.     }
  38.     
  39.     public double getFloat(){
  40. return d;
  41.     }
  42.     public void setInteger(int i){
  43. d=i;
  44.     }
  45.     public void assign(DTDataType tbd){
  46. setFloat(tbd);
  47.     }
  48. //
  49.     public DTDataType multipy(DTDataType other){
  50.     return new DTFloat(null,getFloat()*other.getFloat());
  51. }
  52.     public DTDataType divide(DTDataType other){
  53.     return new DTFloat(null,getFloat()/other.getFloat());
  54. }
  55.     public DTDataType add(DTDataType other){ 
  56.     return new DTFloat(null,getFloat()+other.getFloat());
  57. }
  58.     public DTDataType subtract(DTDataType other){
  59.     return new DTFloat(null,getFloat()-other.getFloat());
  60. }
  61.     public DTDataType mod(DTDataType other){
  62.     return new DTFloat(null,getFloat() % other.getFloat());
  63. }
  64.     public DTDataType round(){
  65.     return new DTInteger(null,new DTFloat(null,getFloat()+0.5));
  66. }
  67.     public DTDataType truncate(){
  68.     return new DTInteger(null,getInteger());
  69. }
  70.     public int compareTo(Object o){
  71. int d=0;
  72. if(getFloat() < ((DTDataType)o).getFloat()){
  73.     return -1;
  74. } else if ( getFloat() > ((DTDataType)o).getFloat()){
  75.     return 1;
  76. }
  77. return 0;
  78.     }
  79.     
  80.     public String toString(){
  81. return new Double(getFloat()).toString();
  82.     }
  83. }