Float.POSITIVE_INFINITY和Float.MAX_VALUE有什么区别?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Float.POSITIVE_INFINITY和Float.MAX_VALUE有什么区别?相关的知识,希望对你有一定的参考价值。
Float.POSITIVE_INFINITY
和Float.MAX_VALUE
有什么区别?哪个更大?它们是一样的吗?
我遇到他们正在寻找一个比其他所有qazxsw poi更大的价值,或者除了最伟大的以外都没有。是否符合该标准?
谢谢!
不,他们根本不是一回事。
float
是可以用Float.MAX_VALUE
表示的最大有限值。除了无穷大之外,您将找不到任何大于该值的值。但是你可以在它上面执行各种其他操作。
float
是,无限。大多数涉及无穷大的操作都会以无穷大(正面或负面)结束。
例如:
Float.POSITIVE_INFINITY
输出:
public class Test
public static void main(String[] args)
testOperations(Float.MAX_VALUE);
testOperations(Float.POSITIVE_INFINITY);
public static void testOperations(float input)
System.out.println("input: " + input);
System.out.println("input / 100: " + input / 100);
System.out.println("input * 100: " + input * 100);
System.out.println("-input: " + (-input));
System.out.println();
要回答您的具体问题:
我遇到他们正在寻找一个比其他所有浮动更大的值,或者除了最大的之外都没有失败。是否符合该标准?
是的,根据其定义,input: 3.4028235E38
input / 100: 3.4028236E36
input * 100: Infinity
-input: -3.4028235E38
input: Infinity
input / 100: Infinity
input * 100: Infinity
-input: -Infinity
是唯一大于Float.POSITIVE_INFINITY
的Float
。然而,就如何与数学运算相互作用而言,这是一个特殊情况。
来自javadoc:
Float.MAX_VALUE
:
保持float类型的正无穷大的常量。它等于Float.intBitsToFloat(0x7f800000)返回的值。
public static final float POSITIVE_INFINITY:
一个常量,保持float类型的最大正有限值,(2-2-23)·2127。它等于十六进制浮点文字0x1.fffffeP + 127f,也等于Float.intBitsToFloat(0x7f7fffff)。
所以,正如你所看到的,根据非常字面的定义,public static final float MAX_VALUE比POSITIVE_INFINITY
大一点。
就其效用而言,MAX_VALUE
提供了一个值,您可以使用该值来识别其他有问题的数学表达式。 JDK源中使用的是POSITIVE_INFINITY
。这个表达式的结果是1.0f / 0.0f
,表明你已经超过了合理数学的上限,永远不会返回。给定两个常数POSITIVE_INFINITY
和POSITIVE_INFINITY
,您可以检查一般表达式是否已经离开了有用的Floats的边界,以及它是正门还是负门。
另一方面,NEGATIVE_INFINITY
表示仍然可以应用正常数学运算的最大值。例如,MAX_VALUE
是一个(略小)数字,比MAX_VALUE - 1.0E32
。然而,MAX_VALUE
仍然是POSITIVE_INFINITY - 1.0E32
。
您可以在此处找到有关IEEE 754浮点值的更多详细信息:POSITIVE_INFINITY
以上是关于Float.POSITIVE_INFINITY和Float.MAX_VALUE有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章
操作系统 & 图论传参一个AOE图,得到按其拓扑排序及权值执行临界区代码的线程数组
分析 _mm_setzero_ps 和 0.0f,0.0f,0.0f,0.0f