Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么编译器不';将long赋值为float时是否不给出错误?_Java - Fatal编程技术网

Java 为什么编译器不';将long赋值为float时是否不给出错误?

Java 为什么编译器不';将long赋值为float时是否不给出错误?,java,Java,当我执行下面的代码时,我希望它得到警告“不能从long转换为float”,因为float是32位,long是64位。 但看起来没有任何警告, 谁能告诉我怎么做 public static void main(String[] args) { float a=1; long b=123; a=b; System.out.println(a); } float的范围比long的范围大得多。。。有一个隐式转换可能会丢失精度,但不会丢失大小。对于long到double

当我执行下面的代码时,我希望它得到警告“不能从long转换为float”,因为float是32位,long是64位。 但看起来没有任何警告, 谁能告诉我怎么做

public static void main(String[] args)
{
    float a=1;
    long b=123;
     a=b;
    System.out.println(a);
}

float
的范围比
long
的范围大得多。。。有一个隐式转换可能会丢失精度,但不会丢失大小。对于
long
double
也是如此

发件人:

int
float
,或从
long
float
,或从
long
double
的扩大原语转换可能会导致精度损失-也就是说,结果可能会丢失一些值的最低有效位。在这种情况下,产生的浮点值将是整数值的正确舍入版本,使用IEEE 754舍入到最近模式(§4.2.4)


float
的范围比
long
的范围大得多。。。有一个隐式转换可能会丢失精度,但不会丢失大小。对于
long
double
也是如此

发件人:

int
float
,或从
long
float
,或从
long
double
的扩大原语转换可能会导致精度损失-也就是说,结果可能会丢失一些值的最低有效位。在这种情况下,产生的浮点值将是整数值的正确舍入版本,使用IEEE 754舍入到最近模式(§4.2.4)


如果float不能保存指定的值,那么它将溢出/underflow@MohammadAdil:它可能无法保持准确的值(在这种情况下,它将取整),但不会溢出/下溢。通过定义加宽意味着在加宽时铸造到范围更广(尽管精度可能更低)的类型,不可能下溢或上溢。如果float不能保持指定的值,则它将上溢/underflow@MohammadAdil:它可能无法保持精确的值(在这种情况下,它将取整),但不会溢出/下溢。通过定义加宽意味着铸造到更宽范围的类型(尽管可能精度较低)加宽时,不可能下溢或溢出。