示例#1
0
文件: Math.java 项目: sharwell/rascal
 public IValue precision(INumber x) {
   if (x.getType().isIntegerType()) {
     IInteger k = (IInteger) x;
     return values.integer(k.toReal().precision());
   }
   if (x.getType().isRationalType()) {
     IRational k = (IRational) x;
     return values.integer(k.toReal().precision());
   }
   return values.integer(((IReal) x).precision());
 }
示例#2
0
文件: Math.java 项目: sharwell/rascal
 public IValue scale(INumber x) {
   try {
     if (x.getType().isIntegerType()) {
       IInteger k = (IInteger) x;
       return values.integer(k.toReal().scale());
     }
     if (x.getType().isRationalType()) {
       IRational k = (IRational) x;
       return values.integer(k.toReal().scale());
     }
     return values.integer(((IReal) x).scale());
   } catch (ArithmeticException ae) {
     throw RuntimeExceptionFactory.arithmeticException(ae.getMessage(), null, null);
   }
 }
示例#3
0
文件: Math.java 项目: sharwell/rascal
 public IValue toReal(IRational n)
       // @doc{toReal -- convert a rational value to a real value.}
     {
   return n.toReal();
 }