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 + -
显示快捷键?