购物类网站首页效果图,集团管理软件,自己怎么做网站建设,网络建设是什么意思1. MOD函数
返回两数相除的余数。 结果的符号与除数相同。
2. 函数用法
MOD(number, divisor)
3. 函数示例
返回两数相除的余数。 结果的符号与除数相同。
number: 必需。 要计算余数的被除数。
divisor: 必需。 除数。
4. 代码实战
首先我们在function包下创建math包…1. MOD函数
返回两数相除的余数。 结果的符号与除数相同。
2. 函数用法
MOD(number, divisor)
3. 函数示例
返回两数相除的余数。 结果的符号与除数相同。
number: 必需。 要计算余数的被除数。
divisor: 必需。 除数。
4. 代码实战
首先我们在function包下创建math包在math包下创建ModFunction类代码如下
package com.ql.util.express.self.combat.function.math;import com.ql.util.express.Operator;
import com.ql.util.express.OperatorOfNumber;
import com.ql.util.express.self.combat.exception.FormulaException;import java.math.BigDecimal;/*** 类描述: MOD函数** author admin* version 1.0.0* date 2023/11/24 8:56*/
public class ModFunction extends Operator {public ModFunction(String name) {this.name name;}Overridepublic Object executeInner(Object[] lists) throws Exception {if (lists.length 0 || lists.length 2) {throw new FormulaException(操作数异常);}Object o1 lists[0];Object o2 lists[1];if (o1 instanceof BigDecimal) {BigDecimal dividend new BigDecimal(o1.toString());BigDecimal divisor new BigDecimal(o2.toString());BigDecimal remainder dividend.remainder(divisor);return remainder;} else {return OperatorOfNumber.modulo(o1, o2);}}
}
把ModFunction类注册到公式函数入口类中代码如下
package com.ql.util.express.self.combat.ext;import com.ql.util.express.ExpressRunner;
import com.ql.util.express.IExpressResourceLoader;
import com.ql.util.express.parse.NodeTypeManager;
import com.ql.util.express.self.combat.function.logic.*;
import com.ql.util.express.self.combat.function.math.*;/*** 类描述: 仿简道云公式函数实战入口类** author admin* version 1.0.0* date 2023/11/21 15:29*/
public class FormulaRunner extends ExpressRunner {public FormulaRunner() {super();}public FormulaRunner(boolean isPrecise, boolean isTrace) {super(isPrecise,isTrace);}public FormulaRunner(boolean isPrecise, boolean isStrace, NodeTypeManager nodeTypeManager) {super(isPrecise,isStrace,nodeTypeManager);}public FormulaRunner(boolean isPrecise, boolean isTrace, IExpressResourceLoader iExpressResourceLoader, NodeTypeManager nodeTypeManager) {super(isPrecise,isTrace,iExpressResourceLoader,nodeTypeManager);}Overridepublic void addSystemFunctions() {// ExpressRunner 的内部系统函数super.addSystemFunctions();// 扩展公式函数this.customFunction();}/**** 自定义公式函数*/public void customFunction() {// 逻辑公式函数this.addLogicFunction();// 数学公式函数this.addMathFunction();}public void addLogicFunction() {// AND函数this.addFunction(AND,new AndFunction(AND));// IF函数this.addFunction(IF,new IfFunction(IF));// IFS函数this.addFunction(IFS,new IfsFunction(IFS));// XOR函数this.addFunction(XOR,new XorFunction(XOR));// TRUE函数this.addFunction(TRUE,new TrueFunction(TRUE));// FALSE函数this.addFunction(FALSE,new FalseFunction(FALSE));// NOT函数this.addFunction(NOT,new NotFunction(NOT));// OR函数this.addFunction(OR,new OrFunction(OR));}public void addMathFunction() {// ABS函数this.addFunction(ABS,new AbsFunction(ABS));// AVERAGE函数this.addFunction(AVERAGE,new AvgFunction(AVERAGE));// CEILING函数this.addFunction(CEILING,new CeilingFunction(CEILING));// RADIANS函数this.addFunction(RADIANS,new RadiansFunction(RADIANS));// COS函数this.addFunction(COS,new CosFunction(COS));// COT函数this.addFunction(COT,new CotFunction(COT));// COUNT函数this.addFunction(COUNT,new CountFunction(COUNT));// COUNTIF函数this.addFunction(COUNTIF,new CountIfFunction(COUNTIF));// FIXED函数this.addFunction(FIXED,new FixedFunction(FIXED));// FLOOR函数this.addFunction(FLOOR,new FloorFunction(FLOOR));// INT函数this.addFunction(INT,new IntFunction(INT));// LARGE函数this.addFunction(LARGE,new LargeFunction(LARGE));// LOG函数this.addFunction(LOG,new LogFunction(LOG));// MAX函数this.addFunction(MAX,new MaxFunction(MAX));// MIN函数this.addFunction(MIN,new MinFunction(MIN));// MOD函数this.addFunction(MOD,new ModFunction(MOD));}
}
创建测试用例
package com.ql.util.express.self.combat;import com.ql.util.express.DefaultContext;
import com.ql.util.express.self.combat.ext.FormulaRunner;
import org.junit.Test;/*** 类描述: 实战测试类** author admin* version 1.0.0* date 2023/11/21 15:45*/
public class CombatTest {Testpublic void MOD() throws Exception{FormulaRunner formulaRunner new FormulaRunner(true,true);// 创建上下文DefaultContextString, Object context new DefaultContext();String express MOD(9,3);Object object formulaRunner.execute(express, context, null, true, true);System.out.println(object);}}
运行结果