NC60公式函数使用说明书.docx
《NC60公式函数使用说明书.docx》由会员分享,可在线阅读,更多相关《NC60公式函数使用说明书.docx(44页珍藏版)》请在冰点文库上搜索。
NC60公式函数使用说明书
NC60公式函数使用说明
NC应用集成开发部马志强
本文档主要是对NC60中公式的根本使用进展简要说明,给出公式可以支持的参数类型以与对应的返回值类型结果等信息,并对公式函数中的一些特殊情况加以说明。
在类型返回值表中没有提与的情况均视为非法参数条件,会抛出异常。
本文档中由于书写匆忙,假如有错误之处,欢迎批评指正。
1.字符串函数
1.1charat(string,index)
公式含义
得到字符串string中第index个字符
类型返回值表
参数string
参数index
返回值
Number
java.lang.String,index转换成int数值,与Java中charAt()结果一样,当index大于string长度时,抛出异常
java.lang.String,index必须可以直接从String转成int,如〞1〞(但“1.22〞不行,转int失败抛异常),转换后与上一条执行结果一样。
1.2endswith(string,end)
公式含义
判断字符串string是否以字符串end结尾
类型返回值表
参数string
参数end
返回值
nc.vo.pub.lang.UFBoolean,与Java中String类方法endsWith返回结果一样,只不过返回UFBoolean
null
除null以外任何对象
除null以外任何对象
null
null
null
1.3equalsIgnoreCase(string1,string2)
公式含义
判断忽略大小写字符串string1是否与字符串string2相等
类型返回值表
参数string
参数end
返回值
Integer,与Java中String类方法equalsIgnoreCase返回结果一样,只不过返回Integer(true对应1,false对应-1)
null
除null以外任何对象
newInteger(-1)
除null以外任何对象
null
newInteger(-1)
null
null
newInteger
(1)
1.4indexOf(st1,st2)
公式含义
判断字符串st1中第一个字符串st2所在的位置,比如lastIndexOf("HI,UAP2006,UAP","UAP")返回3.
类型返回值表
参数st1
参数st2
返回值
Integer,与Java中String类方法indexOf返回结果一样,如果不存在返回-1
注:
参数都不能为null
1.5isEmpty(str)
公式含义
用于判断变量是否为空,包括空串("")与空值(null)
类型返回值表
参数str
返回值
null
其他任何对象
1.6lastIndexOf(st1,st2)
公式含义
判断字符串st1中最后一个字符串st2所在的位置,比如lastIndexOf("HI,UAP2006,UAP","UAP")返回11.
类型返回值表
参数st1
参数st2
返回值
Integer,与Java中String类方法lastIndexOf返回结果一样,如果不存在返回-1
注:
参数都不能为null
1.7left(st,index)
公式含义
求字符串st左边前index个字符组成的字符串
类型返回值表
参数st
参数index
返回值
java.lang.Object(其toString()方法一定要可以parse为int)
java.lang.String,与Java中String类方法subString(0,index)返回结果一样,如果index>st字符串的长度,抛异常
注:
参数均不能为null。
1.8leftStr(st,len,defaultStr)
公式含义
求字符串st左边前len个字符组成的字符串,如果字符串长度小于len,如此用defaultStr补齐,比如leftStr("abc",6,"")将返回abc.
类型返回值表
参数st
参数len
参数defaultStr
返回值
java.lang.String,长度不能为0
java.lang.Object,但其toString()方法要能转换为int值
java.lang.String,长度不能为0
java.lang.String,将str的字符串值从左侧进展截取,如果长度不够len,如此用defaultStr补齐
注:
参数都不能为null。
补齐时的策略:
如果一个defaultStr不够,可重复多个。
比如leftStr(“abc〞,6,“ef〞)返回abcefe。
1.9length(st)
公式含义
求字符串st的长度
类型返回值表
参数st
返回值
Integer,与String的length方法返回结果一样
null
0
1.10mid(Stringst,intstart,intend)
公式含义
求字符串st左边前第start个字符至第end个字符之间的字符串
类型返回值表
参数st
参数start
参数end
返回值
java.lang.String,长度不能为0
java.lang.Object,但其toString()方法要能转换为int值
java.lang.Object,但其toString()方法要能转换为int值
java.lang.String,与String中的方法subString(start,end)
注:
参数均不可以为null,此方法会检查start和end,当start<0,end>st字符串的长度或start>end时抛出异常。
1.11right(Stringst,intindex)
公式含义
求字符串st右边前index个字符组成的字符串
类型返回值表
参数st
参数index
返回值
java.lang.Object(其toString()方法一定要可以parse为int)
java.lang.String,与Java中String类方法subString(st.length()-index)返回结果一样,如果index>st字符串的长度,抛异常
注:
参数均不能为null。
1.12rightStr(st,len,defaultStr)
公式含义
求字符串st右边后len个字符组成的字符串,如果字符串长度小于len,如此用defaultStr补齐,比如rightStr("abc",6,"")将返回abc.
类型返回值表
参数st
参数len
参数defaultStr
返回值
java.lang.String,长度不能为0
java.lang.Object,但其toString()方法要能转换为int值
java.lang.String,长度不能为0
java.lang.String,将str的字符串值从右侧进展截取,如果长度不够len,如此用defaultStr补齐
注:
参数都不能为null。
补齐时的策略:
如果一个defaultStr不够,可重复多个。
比如leftStr(“abc〞,6,“ef〞)返回abcefe。
1.13startsWith(Stringst,Stringstart)
公式含义
判断字符串st是否以字符串start开头
类型返回值表
参数string
参数end
返回值
nc.vo.pub.lang.UFBoolean,与Java中String类方法startsWith返回结果一样,只不过返回UFBoolean
null
除null以外任何对象
除null以外任何对象
null
null
null
1.14toLowerCase(Stringst)
公式含义
求字符串st的小写形式,比如toLowerCase("Abc")返回"abc"。
类型返回值表
参数st
返回值
java.lang.String,与String的toLowerCase方法返回结果一样
注:
参数不能为null。
1.15toString(obj)
公式含义
将对象obj转换为本解析器可识别的字符串形式。
类型返回值表
参数st
返回值
null
java.lang.String,“null〞
java.lang.String,〞〞
java.lang.String,返回toString()方法的内容
1.16toUpperCase(Stringst)
公式含义
求字符串st的大写形式。
类型返回值表
参数st
返回值
java.lang.String,与String的toUpperCase方法返回结果一样
注:
参数不能为null。
1.17trimZero(value,[decimal])
公式含义
剪除字符串或数字str的末尾0值,var:
表示待截取的值,可以为数值也可以为字符,假如字符型不能转换为数值如此返回原值(如"8.023a")。
[decimal]:
可选项,表示精度值(即小数点后的位数).
trimZero("8.023000");//return"8.023"
trimZero(8.023000);//return8.023
trimZero("8.023000a");//return"8.023000a"
trimZero("8.023000",2);//return"8.02"
类型返回值表
参数value
参数decimal
返回值
java.lang.Object,但其toString方法要能转换成int值
如果String可以直接转成UFDouble,返回具体精度的UFDouble,否如此直接返回value。
特别地,当value长度为0时返回UFDouble(0.0)
UFDouble
同上
返回具体精度的UFDouble
Number
同上
将value转换为double后,再按照精度转换成UFDouble
同上
直接返回value
null
同上
null
注:
参数decimal可以不写,此时默认为-1〔int〕,如果设置decimal的值,如此其不能为null。
2.数学函数
2.1abs(num)
公式含义
求数num的绝对值
类型返回值表
参数num
返回值
Integer
Integer,与Math.abs(int)方法返回结果一样
Number
Double,与Math.abs(double)方法返回结果一样
Double,与plex返回结果一样
注:
参数值不能为null。
2.2acos(x)
公式含义
返回一个弧度x的反余弦(arccos),弧度值在0到Pi之间
类型返回值表
参数num
返回值
Number
Double,与Math.acos(double)方法返回结果一样
Double,与plex.acos():
返回结果一样
注:
参数不能为null。
plex.acos():
acos(z)=-i*log(z+i*sqrt(1-z*z))。
2.3add(num1,num2)
公式含义
用于高精度加法运算。
对应类:
nc.vo.pub.formulaset.function.AddBigNumber。
类型返回值表
参数num1
参数num2
返回值
UFDouble
null
UFDouble:
num1
UFDouble
UFDouble:
num1+num2
Number
UFDouble:
num1+num2
null
UFDouble
UFDouble:
num2
Number
UFDouble:
num1+num2
注:
其他的情况下,将会用普通+的方式进展运算
2.4asin(x)
公式含义
返回一个弧度x的反正弦(arcsin),弧度值在-Pi/2到Pi/2之间
类型返回值表
参数num
返回值
Number
Double,与Math.asin(double)方法返回结果一样
plex
Double,与plex.asin():
返回结果一样
注:
参数不能为null。
plex.asin():
asin(z)=-i*log(i*z+sqrt(1-z*z))。
2.5atan(x)
公式含义
返回一个弧度x的反正切值,弧度值在-Pi/2到Pi/2之间
类型返回值表
参数x
返回值
Number
Double,与Math.atan(double)方法返回结果一样
plex
Double,与plex.atan():
返回结果一样
注:
参数不能为null。
plex.atan():
atan(z)=-i/2*log((i-z)/(i+z))。
2.6cos(x)
公式含义
返回给定角度x的余弦值
类型返回值表
参数x
返回值
Number
Double,与Math.cos(double)方法返回结果一样
plex
Double,与plex.cos():
返回结果一样
注:
参数不能为null。
plex.cos():
cos(z)=(exp(i*z)+exp(-i*z))/2。
2.7div(num1,num2)
公式含义
用于高精度除法运算
类型返回值表
参数num1
参数num2
返回值
UFDouble
null
UFDouble:
num1
UFDouble
UFDouble:
num1.div(num2)
Number
UFDouble:
num1.div(num2)
null
UFDouble
UFDouble:
num2
Number
UFDouble:
num1.div(num2)
注:
其他情况下,会使用/操作进展运算
2.8exp(x)
公式含义
e的x次方
类型返回值表
参数x
返回值
Number
Double,与Math.exp(x.doubleValue())方法返回结果一样
plex
plex,newplex(mod*Math.cos(y),mod*Math.sin(y))
注:
参数不能为null
2.9int(x)
公式含义
将变量转换为int类型;
类型返回值表
参数x
返回值
Number
Integer,newInteger(Math.round(x.floatValue()))
String
Integer,newInteger(Math.round(newDouble(x.toString()).floatValue))
注:
参数不能为null
2.10ln(x)
公式含义
返回给定数值x的自然对数;
类型返回值表
参数x
返回值
Number
plex,newplex(param.doubleValue()).log()
plex
plex,x.log()
注:
参数不能为null
2.11log(x)
公式含义
返回给定数n的以十为底的对数;
类型返回值表
参数x
返回值
Number
plex,newplex(x.doubleValue()).log().div(newplex(Math.log(10),0))
plex
plex,x.log().div(newplex(Math.log(10),0))
注:
参数不能为null
2.12max(x,y)
公式含义
求数字x,y两者中的最大值
类型返回值表:
参数x
参数y
返回值
Number
Number
Number,x.doubleValue()与y.doubleValue()比拟,>返回x,其余返回y
parable
Object
xpareTo(y),>0返回x,<0返回y
Object
parable
-ypareTo(x),>0返回x,<0返回y
注:
参数不能为null,parable:
java.langparable。
2.13min(x,y)
公式含义
求x,y两者中的最小值;
类型返回值表
参数x
参数y
返回值
Number
Number
Number,x.doubleValue()与y.doubleValue()比拟,>返回x,其余返回y
parable
Object
xpareTo(y)进展比拟,>0返回y,<0返回x
Object
parable
-ypareTo(x)进展比拟,>0返回y,<0返回x
2.14mul(num1,num2)
公式含义
用于高精度乘法运算;
类型返回值表
参数num1
参数num2
返回值
UFDouble
null
UFDouble:
num1
UFDouble
UFDouble:
num1.multiply(num2)
Number
UFDouble:
num1.multiply(num2)
null
UFDouble
UFDouble:
num2
Number
UFDouble:
num1.multiply(num2)
注:
其他情况下,会使用*操作进展运算
2.15round(doublenum,intindex)
公式含义
对num保存index位小数(四舍五入);
类型返回值表
参数x
参数y
返回值
String
Number
newUFDouble(x).setScale(y,UFDouble.ROUND_HALF_UP)
UFDouble
Number
newUFDouble(x).setScale(y,UFDouble.ROUND_HALF_UP)
Number
Number
newUFDouble(x).setScale(y,UFDouble.ROUND_HALF_UP)
注:
返回类型均为UFDouble,参数不能为null
2.16sgn(num)
公式含义
当数num大于0时,返回1,等于0时,返回0,小于0时返回-1;
类型返回值表
参数num
返回值
Number
Double,判断num.doubleValue()与0之间的关系,>时返回1,=时返回0,<时返回-1
注:
参数不能为null
2.17sin(x)
公式含义
返回给定角度x的正弦值;
类型返回值表
参数num
返回值
Number
newDouble(Math.sin(((Number)param).doubleValue()))
plex
plex,((plex)param).sin()
注:
参数不能为null
2.18sqrt(x)
公式含义
返回数值x的平方根;
类型返回值表
参数x
返回值
Number
x.doubleValue()<0,返回newplex(value).sqrt(),即plex;
x.doubleValue()<0,返回newDouble(Math.sqrt(x)),即Double
plex
plex,((plex)param).sqrt()
注:
参数不能为null
2.19sub(num1,num2)
公式含义
用于高精度减法运算;
类型返回值表
参数num1
参数num2
返回值
UFDouble
null
UFDouble:
num1
UFDouble
UFDouble:
num1-num2
Number
UFDouble:
num1-num2
null
UFDouble
UFDouble:
num2
Number
UFDouble:
num1-num2
注:
其他的情况下,将会用普通-的方式进展运算
2.20tan(x)
公式含义
返回给定角度x的正切值;
类型返回值表
参数x
返回值
Number
Double,newDouble(Math.tan(((Number)param).doubleValue()))
plex
plex,((plex)param).tan()
注:
参数类型不能为null
2.21toNumber(Stringst)
公式含义
将字符串st转换为本解析器可识别的数字,比如toNumber("45.0")将返回一个数字型45.0,经过转化后可参与各种数值计算.
类型返回值表
参数st
返回值
String
st.toString()==null或trim().length()==0,返回newUFDouble(0);
newUFDouble(st.toString().trim())
Number
Number,st
注:
参数类型不能为null
2.22zeroifnull(var)
公式含义
表示如果var为空将返回0;
类型返回值表
参数var
返回值
null
newDouble(0)
String
如果var.length==0,返回newDouble(0)
其他情况
var
注:
参数类型不能为null
2.23acosh(param)
公式含义
acosh(z)=log(z+sqrt(z*z-1))
类型返回值表
参数param
返回值
Number
plex:
newplex(((Number)param).doubleValue(),0.0).acosh()
plex
plex:
((plex)param).acosh()
2.24angle(x,y)
公式含义
类型返回值表
参数x
参数y
返回值
Number
Number
Double:
newDouble(Math.atan2(x.doubleValue(),y.doubleValue()))
2.25asinh(param)
公式含义
asinh(z)=log(z+sqrt(z*z+1))
类型返回值表
参数param
返回值
Number
plex:
newplex(((Number)param).doubleValue(),0.0).asinh()
plex
plex:
((plex)param).asinh()
2.26atanh(param)
公式含义
asinh(z)=log(z+sqrt(z*z+1))
类型返回值表
参数param
返回值
Number
plex:
newplex(((Number)param).doubleValue(),0.0).atanh()
ple