salesforce零基础学习(四十三)运算取余
工作中遇到一个简单的小问题,判断两个数是否整除,如果不整除,获取相关的余数。
习惯java的我毫不犹豫的写下了代码
public Boolean isDivisibility(Integer dividend,Integer divider) { return dividend % divider == 0; }
提交代码发现竟然提交不上??
后来查看API发现apex中没有直接的%取余运算,所以如果想要取余以及判断是否整除需要其他方式,代码如下:
public without sharing class MathHelper { /* 是否整除 @param dividend 被除数 @param divider 除数 @return 整除返回true,不整除返回false */ public static Boolean isDivisibility(Integer dividend,Integer divider) { //先将被除数转换成Decimal,否则先计算整数除法结果为Integer类型,然后将整数转换成Decimal Decimal resultDecimal = Decimal.valueOf(dividend) / divider; //获取结果上线 Integer resultSeiling = Integer.valueOf(resultDecimal.round(System.RoundingMode.CEILING)); Integer resultDown = Integer.valueOf(resultDecimal.round(System.RoundingMode.DOWN)); return resultSeiling == resultDown; } /* 获取余数 @param dividend 被除数 @param divider 除数 @return 返回余数 */ public static Integer getRemainder(Integer dividend,Integer divider) { Decimal resultDecimal = Decimal.valueOf(dividend) / divider; Integer resultDown = Integer.valueOf(resultDecimal.round(System.RoundingMode.DOWN)); return dividend - resultDown * divider; } }
调用结果显示: