比较Java中的2个数字

时间:2014-10-09 16:16:41

标签: java

我知道那里已经有很多像这样的问题了。但是,如果我需要比较2个数字并且我不知道它们是什么类型,该怎么办?这意味着其中一个可能是Float而另一个是Long。 JavaCore或Apache中是否有一些可以解决这个问题的库(不幸的是,NumberUtils缺少这种方法)?我一直在寻找几个小时,但没有成功。或者我应该用this之类的东西重新发明轮子。我只是不相信像Java那样的高级语言没有比较2个数字的工具。

2 个答案:

答案 0 :(得分:0)

您可以对这两个数字使用doubleValue()方法,然后比较双值。

如果你需要更高的整数精度,你可以将其作为特殊情况来实现。

如果您的对象不是Number的实例(例如,包含"数字"的对象或字符串),那么您应该抛弃所有代码并诚实地从头开始。

答案 1 :(得分:0)

在比较之前,int将被转换为long。原则上会进行演员表,比如

if(a ==(long)b)

Java将为您投射主要类型,前提是它不会导致精度损失。由于long可以保存int的所有值,因此将自动执行转换,但是如果你想在int应该使用的地方,你必须显式地转换(例如)long。

编辑:施展一个长期的" x"到一个int,使用: x =(int)x;