从Groovy迁移到Java
发布时间:2020-12-14 16:27:08 所属栏目:大数据 来源:网络整理
导读:在我的grails项目中,我将所有计算都移到 java类中. Here is the link to source code (i’ve saved it in Google Docs). 主要目的是将当前时间格式化为字符串(两种语言).例子: 1 day 2 hours 3 seconds1 день 2 часа 3 секунды 但我有一个方
在我的grails项目中,我将所有计算都移到
java类中.
Here is the link to source code (i’ve saved it in Google Docs). 主要目的是将当前时间格式化为字符串(两种语言).例子: 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 附: num – 是标准long(java.lang.Long)值,part是大于0且小于或等于9(1..9). 但是这个代码只在groovy类中工作正常. 在java类中,我得到了这些结果: endsWith(7,7) == true endsWith(23,3) == false endsWith(23,1) == true 正如我从gant日志中看到的 – 所有代码都是由groovyc编译的. P.2.2我用groovyc和javac编译这段代码来比较结果.因为如果我没有犯任何错误,那可能是groovyc中的一个错误.但这是我的错误,我希望:) 解决方法
为什么要使用浮点运算?为什么不呢:
private static boolean endsWith(final long num,final long part) { return (num % 10) == part; } ?如果它需要为负数工作,你需要在mod之前取绝对值,否则应该没问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |