在我的
我可以从甘特图日志中看到 - 所有的代码都是由groovyc编译的。
P.S.2 我会使用groovyc和javac编译此代码以比较结果。因为如果我没有犯任何错误,那么可能是groovyc的一个bug。但我希望这是我的错误 :)
grails
项目中,我正在将所有的计算移到Java类中。
主要目的是将当前时间格式化为字符串(使用两种语言)。例如:1 day 2 hours 3 seconds
1 день 2 часа 3 секунды
但是我有一个方法:
private static boolean endsWith(final long num, final long part) {
if (num / 10 < 1) {
return num == part;
} else {
float val1 = (num - part) / 10;
float val2 = (float) Math.floor(val1);
return val1 == val2;
}
}
它检查'num'是否以'part'结尾。 示例:
assert endsWith(128, 1) == false
assert endsWith(1, 1) == true
assert endsWith(34, 4) == true
P.S. num是标准长整型(java.lang.Long)值,部分大于0且小于等于9(1..9)。
但是此代码仅在groovy类中正常工作。
在java类中,我得到了这些结果:
endsWith(7, 7) == true
endsWith(23, 3) == false
endsWith(23, 1) == true
我可以从甘特图日志中看到 - 所有的代码都是由groovyc编译的。
P.S.2 我会使用groovyc和javac编译此代码以比较结果。因为如果我没有犯任何错误,那么可能是groovyc的一个bug。但我希望这是我的错误 :)