首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Java中实现无穷大?

如何在Java中实现无穷大?
EN

Stack Overflow用户
提问于 2012-10-18 18:01:39
回答 11查看 370.6K关注 0票数 162

对于每种数值数据类型,Java有没有什么东西可以表示无穷大呢?它是如何实现的,以便我可以用它进行数学运算?

例如。

代码语言:javascript
复制
int myInf = infinity; //However it is done
myInf + 5; //returns infinity
myInf*(-1); //returns negative infinity

我尝试过使用非常大的数字,但我想要一个合适的easy解决方案。

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2012-10-18 18:04:21

double支持无限

代码语言:javascript
复制
double inf = Double.POSITIVE_INFINITY;
System.out.println(inf + 5);
System.out.println(inf - inf); // same as Double.NaN
System.out.println(inf * -1); // same as Double.NEGATIVE_INFINITY

打印

代码语言:javascript
复制
Infinity
NaN
-Infinity

注意:Infinity - Infinity不是一个数字。

票数 221
EN

Stack Overflow用户

发布于 2013-07-31 22:21:57

我假设你使用整数数学是有原因的。如果是这样的话,您可以通过使用POSITIVE_INFINITY类的MAX_VALUE字段获得与Integer在功能上几乎相同的结果:

代码语言:javascript
复制
Integer myInf = Integer.MAX_VALUE;

(对于NEGATIVE_INFINITY,您可以使用MIN_VALUE。)当然会有一些功能上的差异,例如,当比较myInf和碰巧为MAX_VALUE的值时:显然这个数字不小于myInf。此外,正如下面的注释中所指出的,递增正无穷大将使您返回负数(递减负无穷大将使您返回正数)。

还有一个a library,它实际上包含字段POSITIVE_INFINITY和NEGATIVE_INFINITY,但它们实际上只是MAX_VALUE和MIN_VALUE的新名称。

票数 54
EN

Stack Overflow用户

发布于 2012-10-18 18:06:03

要使用Infinity,您可以使用支持InfinityDouble:-

代码语言:javascript
复制
    System.out.println(Double.POSITIVE_INFINITY);
    System.out.println(Double.POSITIVE_INFINITY * -1);
    System.out.println(Double.NEGATIVE_INFINITY);

    System.out.println(Double.POSITIVE_INFINITY - Double.NEGATIVE_INFINITY);
    System.out.println(Double.POSITIVE_INFINITY - Double.POSITIVE_INFINITY);

输出:-

代码语言:javascript
复制
Infinity
-Infinity
-Infinity

Infinity 
NaN
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12952024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档