java - Long 的大小为 8 字节,那么在 JAVA 中如何将 'promoted' 转换为 float (4 字节)?

标签 java long-integer type-promotion

我读到在 Java 中 long 类型可以提升为 float 和 double ( http://www.javatpoint.com/method-overloading-in-java )。我想问一下在JAVA中long integer占用8个字节内存而float占用4个字节那么这个提升是如何工作的?如果我们以这种方式推广,我们是否有可能面临一些数据丢失?

另外值得注意的是,所有其他类型的提升都是从较小的原始数据类型到类似或较大的数据类型。

  • byte 到 short、int、long、float 或 double
  • short 到 int、long、float 或 double
  • char 到 int、long、float 或 double
  • int 到 long、float 或 double
  • long to float or double _________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • float 到两倍

最佳答案

long 使用更多的字节,但它的范围更小:虽然 long 不能超过 263float 可以转到大约 2127。显然,范围的扩大是以降低精度为代价的,但是由于float的范围更大,所以从longfloat的转换是促销 Activity 。

关于java - Long 的大小为 8 字节,那么在 JAVA 中如何将 'promoted' 转换为 float (4 字节)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31495742/

相关文章:

java - 用于投影异常的 Spring Data Rest ResourceProcessor

java - 刷新浏览器时,使用 cookies(java + React) 转到最后完成的步骤

java - 如何检查在测试方法中创建的对象的值?

c - 代码中有多少种类型转换?

c++ - 嵌套 vector 不遵循提升规则。解决方案有一个错误。

java - 为什么 "short thirty = 3 * 10"是合法分配?

java - Java 中的格式化类型

c# - 如何获得特定长度的最大数量

swift - 如何快速处理长整数的答案

ios - 如何将长整数时间转换为NSString或NSDate来显示时间?