gpt4 book ai didi

java - 分配给变量时精度损失

转载 作者:行者123 更新时间:2023-11-29 03:58:09 26 4
gpt4 key购买 nike

我对分配或转换为正确的数据类型有疑问。

byte a=3;   //compiled
byte b=5; //compiled
byte c=a+b; //not compiled and reporting as possible loss of precision.

这里前两个语句正在编译,即使我们将 int 文字分配给 byte。但是第三个语句呢我正在做与上面相同的操作,并且 a+b 的值也在 byte 的范围内。为什么会有这样的错误?

最佳答案

一般规则是您不能使用赋值将整数缩小为字节,因为这是不安全的缩小转换(大多数整数适合字节)。具体来说,不允许 assignment conversions可能会缩小。

但是,有一个 exception专门针对这种情况:

A narrowing primitive conversion may be used if the type of the variable is byte, short, or char, and the value of the constant expression is representable in the type of the variable.

这适用于ab。两个变量的类型都是byte,两个常量表达式的值显然都在一个byte中。

关于java - 分配给变量时精度损失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5137986/

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