hpmath.java

来自「一个简单的visio程序。」· Java 代码 · 共 1,723 行 · 第 1/4 页

JAVA
1,723
字号
/*---------------------------------
Represent:  VBMATH functions
            Abs ,Atn,Cos,Exp, Fix,Int,Log,
            Rnd,Sgn,Sin,Sqr,Tan,Round(exp),Round(exp,num)
Author  :   CaoLiQun
            Huxia
-----------------------------------*/

package HPCore.stdfunc;
import  HPCore.Exception.*;
import  HECore.stddata.*;

public class hpmath
{
    /**
	 *sin(number)
	 *Returns the sine of an angle.
     */
    public static double SIN(Variant param) throws HpException
    {
    double  d = hpstring.get_db(param);
    if( d>=9.223372E+18 || d<=-9.223372E+18)
        throw new HpException( 5,"Invalid procedure call");

    return  Math.sin(d);
    }

    public static double SIN(boolean param) throws HpException
    {
        double  d = param==true ? -1:0;
        return Math.sin( d);
    }
    
    public static double SIN(HByte param) throws HpException
    {
        return Math.sin( (double)(param.byteValue()) );
    }
    
    public static double SIN(short param) throws HpException
    {
        return Math.sin( (double)param );
    }
    
    public static double SIN(int param) throws HpException
    {
        return Math.sin( (double)param );
    }
    
    public static double SIN(float param) throws HpException
    {
        if( param>=9.223372E+18 || param<=-9.223372E+18)
            throw new HpException( 5,"Invalid procedure call");
        return Math.sin( (double)param );
    }

    public static double SIN(double param) throws HpException
    {
        if( param>=9.223372E+18 || param<=-9.223372E+18)
            throw new HpException( 5,"Invalid procedure call");

        return  Math.sin(param);
    }

    public static double SIN(HDate param) throws HpException
    {
        double d = param.dblValue();
        if( d>=9.223372E+18 || d<=-9.223372E+18)
            throw new HpException( 5,"Invalid procedure call");

        return  Math.sin(d);
    }

    public static double SIN(HCurr param) throws HpException
    {
        double d = param.dblValue();
        if( d>=9.223372E+18 || d<=-9.223372E+18)
            throw new HpException( 5,"Invalid procedure call");

        return  Math.sin(d);
    }

    public static double SIN(fixedString param) throws HpException
    {
        double   d = param.dblValue();
        if( d>=9.223372E+18 || d<=-9.223372E+18)
            throw new HpException( 5,"Invalid procedure call");

        return  Math.sin(d);
    }

    public static double SIN(String param) throws HpException
    {
		System.out.println( "param= "+param );
        double d = hpstring.strtodbl(param);
        System.out.println( "d= "+d );
        if( d>=9.223372E+18 || d<=-9.223372E+18)
            throw new HpException( 5,"Invalid procedure call");

        return  Math.sin(d);
    }


    /**
	 *Cos(number)
	 *Returns the cosine of an angle.
     */
    public static double COS(Variant param) throws HpException
    {
    double     d = hpstring.get_db(param);
    System.out.println( "vvvvvv");
    if( d>=9.223372E+18 || d<=-9.223372E+18)
        throw new HpException( 5,"Invalid procedure call");

    return Math.cos(d);
    }

    public static double COS(boolean param) throws HpException
    {
    System.out.println( "boolean");    
    double d = param==true ? -1:0;
    return Math.cos(d);
    }

    public static double COS(HByte param) throws HpException
    {
        return Math.cos((double)(param.byteValue()) );
    }        
        
    public static double COS(short param) throws HpException
    {
    System.out.println( "short");    
        return Math.cos((double)param );
    }        

    public static double COS(int param) throws HpException
    {
    System.out.println( "int");    
        return Math.cos((double)param );
    }        
    
    public static double COS(float param) throws HpException
    {
    System.out.println( "float");    
        if( param>=9.223372E+18 || param<=-9.223372E+18)
            throw new HpException( 5,"Invalid procedure call");
        return Math.cos((double)param );
    }        
    
    public static double COS(double param) throws HpException
    {
    System.out.println( "double");    
        if( param>=9.223372E+18 || param<=-9.223372E+18)
            throw new HpException( 5,"Invalid procedure call");
        return Math.cos(param );
    }        
    
    public static double COS(HDate param) throws HpException
    {
    System.out.println( "hdate");    
        double d = param.dblValue();
        if( d>=9.223372E+18 || d<=-9.223372E+18)
            throw new HpException( 5,"Invalid procedure call");
        return Math.cos(d );
    }        
    
    public static double COS(HCurr param) throws HpException
    {
    System.out.println( "hcurr");    
        double d = param.dblValue();
        if( d>=9.223372E+18 || d<=-9.223372E+18)
            throw new HpException( 5,"Invalid procedure call");
        return Math.cos(d );
    }        

    public static double COS(fixedString param) throws HpException
    {
    System.out.println( "fixedstring");    
        double d = hpstring.strtodbl( param.strValue() );
        if( d>=9.223372E+18 || d<=-9.223372E+18)
            throw new HpException( 5,"Invalid procedure call");
        return Math.cos(d );
    }        

    public static double COS(String param) throws HpException
    {
    System.out.println( "string");    
    double     d = hpstring.strtodbl(param);
    if( d>=9.223372E+18 || d<=-9.223372E+18)
        throw new HpException( 5,"Invalid procedure call");
    return Math.cos(d);
    }

	/**
	 *Tan(number)
	 *Returns the tangent  of an angle.
     */
    public static double TAN(Variant param) throws HpException
    {
    double       d = param.dblValue();
    if( d>=9.223372E+18 || d<=-9.223372E+18)
        throw new HpException( 5,"Invalid procedure call");

    double       dd = Math.tan(d);
    if( dd==Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return  dd;
    }

    public static double TAN(boolean param) throws HpException
    {
    double  d = param==true ? (double)-1:(double)0;    
    double       dd = Math.tan(d);
    if( dd==Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return  dd;
    }

    public static double TAN(HByte param) throws HpException
    {
    double       dd = Math.tan((double)(param.byteValue()) );
    if( dd==Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return  dd;
    }
    
    public static double TAN(short param) throws HpException
    {
    double       dd = Math.tan((double)param);
    if( dd==Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return  dd;
    }

    public static double TAN(int param) throws HpException
    {
    double       dd = Math.tan((double)param);
    if( dd==Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return  dd;
    }

    public static double TAN(float param) throws HpException
    {
    if( param>=9.223372E+18 || param<=-9.223372E+18)
        throw new HpException( 5,"Invalid procedure call");

    double       dd = Math.tan( (double)param );
    if( dd==Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return  dd;
    }

    public static double TAN(double d) throws HpException
    {
    if( d>=9.223372E+18 || d<=-9.223372E+18)
        throw new HpException( 5,"Invalid procedure call");

    double       dd = Math.tan(d);
    if( dd==Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return  dd;
    }

    public static double TAN(HCurr param) throws HpException
    {
    double       d = param.dblValue();
    if( d>=9.223372E+18 || d<=-9.223372E+18)
        throw new HpException( 5,"Invalid procedure call");

    double       dd = Math.tan(d);
    if( dd==Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return  dd;
    }

    public static double TAN(HDate param) throws HpException
    {
    double       d = param.dblValue();
    if( d>=9.223372E+18 || d<=-9.223372E+18)
        throw new HpException( 5,"Invalid procedure call");

    double       dd = Math.tan(d);
    if( dd==Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return  dd;
    }

    public static double TAN(fixedString param) throws HpException
    {
    String   str = param.strValue();
    double       d = hpstring.strtodbl(str);
    if( d>=9.223372E+18 || d<=-9.223372E+18)
        throw new HpException( 5,"Invalid procedure call");

    double       dd = Math.tan(d);
    if( dd==Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return  dd;
    }

    public static double TAN(String param) throws HpException
    {
    double       d = hpstring.strtodbl(param);
    if( d>=9.223372E+18 || d<=-9.223372E+18)
        throw new HpException( 5,"Invalid procedure call");

    double       dd = Math.tan(d);
    if( dd==Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return  dd;
    }

	/**
	 *Atn(number)
	 *Returns the arctangent  of an angle.
     */
    public static double ATN(Variant param) throws HpException
    {
    double     d = hpstring.get_db(param);

    double     dd = Math.atan(d);
    if( dd == Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return   dd;
    }

    public static double ATN(boolean param) throws HpException
    {
    double     dd = Math.atan(param==true ? (double)-1:(double)0 );
    if( dd == Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return   dd;
    }

    public static double ATN(HByte param) throws HpException
    {
    double     dd = Math.atan((double)(param.byteValue()));
    if( dd == Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return   dd;
    }

    public static double ATN(short param) throws HpException
    {
    double     dd = Math.atan((double)param);
    if( dd == Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return   dd;
    }

    public static double ATN(int param) throws HpException
    {
    double     dd = Math.atan((double)param);
    if( dd == Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return   dd;
    }

    public static double ATN(float param) throws HpException
    {
    double     dd = Math.atan((double)param);
    if( dd == Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return   dd;
    }

    public static double ATN(double param) throws HpException
    {
    double     dd = Math.atan(param);
    if( dd == Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return   dd;
    }

    public static double ATN(HCurr param) throws HpException
    {
    double d = param.dblValue();    
    double     dd = Math.atan(d);
    if( dd == Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return   dd;
    }

    public static double ATN(HDate param) throws HpException
    {
    double d = param.dblValue();    
    double     dd = Math.atan(d);
    if( dd == Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return   dd;
    }
    
    public static double ATN(fixedString param) throws HpException
    {
    String str = param.strValue();
    double d = hpstring.strtodbl(str);
    double     dd = Math.atan(d);
    if( dd == Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return   dd;
    }

    public static double ATN(String param) throws HpException
    {
    double d = hpstring.strtodbl(param);    
    double     dd = Math.atan(d);
    if( dd == Double.NaN )
        throw new HpException(5,"Invalid procedure call");
    return   dd;
    }
    
    /**
    
	 *Abs(number)
	 *Returns the absolute value of a number.
     */
    public static Variant ABS( Variant param ) throws HpException
    {
        Variant v = null;

        switch(  param.getType() )
        {
        case Variant.V_EMPTY:
        v = new VDouble(0);
        break;

        case Variant.V_BYTE:
        v = new VByte((int)(Math.abs( param.intValue()) ) );
        break;


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?