相关疑难解决方法(0)

为什么Java隐式(没有强制转换)将`long`转换为`float`?

每当我想到我对铸造和转换的理解时,我发现了另一种奇怪的行为.

long l = 123456789L;
float f = l;
System.out.println(f);  // outputs 1.23456792E8
Run Code Online (Sandbox Code Playgroud)

鉴于a的long位深度比a大float,我希望为了编译它需要一个显式的强制转换.毫不奇怪,我们发现结果已经失去了精确度.

为什么这里不需要演员?

java casting

36
推荐指数
4
解决办法
4万
查看次数

你如何在java中获得浮点数的尾数?

我正在尝试获取浮点数的尾数(只是为了学习),但它没有按预期工作.

浮点数的结构

说5.3的尾数是53,对吗?我试过这段代码:

System.out.println(Float.floatToIntBits(5.3f) & 0x7FFFFF);
Run Code Online (Sandbox Code Playgroud)

它印了2726298.它不应该删除指数位并留下53?我尝试了很多东西,但总会发生这种情况.我在这做错了什么?

java

7
推荐指数
1
解决办法
3552
查看次数

标签 统计

java ×2

casting ×1