gpt4 book ai didi

java - 数学表达式中的类型计算

转载 作者:行者123 更新时间:2023-12-01 12:53:01 25 4
gpt4 key购买 nike

我正在为ocpjp做准备。

我知道:

byte * byte = int 

long * int = long

但我想知道float * float = float

float on float 可能是非常大的数字,逻辑上将其转换为 double。

无论如何,为了成功通过考试,我应该了解有关它的所有规则。

请解释一下这些规则或仅指出相关的 jls 部分。

最佳答案

我认为 JLS 的相关部分是 4.2.4 Floating-Point Operations :

If at least one of the operands to a numerical operator is of type double, then the operation is carried out using 64-bit floating-point arithmetic, and the result of the numerical operator is a value of type double. If the other operand is not a double, it is first widened (§5.1.5) to type double by numeric promotion (§5.6).

Otherwise, the operation is carried out using 32-bit floating-point arithmetic, and the result of the numerical operator is a value of type float. (If the other operand is not a float, it is first widened to type float by numeric promotion.)

因此,如果将两个 float 值相乘,则会执行 32 位运算。如果值太大,就会发生无穷大溢出。

如果将 float 乘以 double,结果将是 double 并且 float 将在操作过程中扩展为64位值。

关于java - 数学表达式中的类型计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24077680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com