当前位置: 首页 > 知识库问答 >
问题:

为什么将长(64)转换为浮点(32)被认为是加宽?

蒲坚
2023-03-14

加宽基元转换19基元类型上的特定转换称为加宽基元转换:

  1. 字节到短、int、long、float或double
  2. 短到int、long、float或double
  3. 字符为int、long、float或double
  4. 从int到long、float或double
  5. 长时间浮动还是加倍?
  6. 浮动到双倍

如果浮点数为32位,而长点数为64位,那该如何被认为是加宽的呢?这难道不应该被认为是缩小范围吗?

共有1个答案

卞浩漫
2023-03-14

可由floatdouble表示的值的范围比可由long表示的范围大得多。虽然从long转换为float时可能会丢失有效数字,但这仍然是一个“加宽”操作,因为范围更宽。

根据Java语言规范§5.1.2:

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

 类似资料:
  • 问题内容: 正如甲骨文所说 来自 Oracle Docs的 参考 扩展基元转换19个特定于基元类型的转换称为扩展基元转换: 字节到short,int,long,float或double 短至int,long,float或double char转换为int,long,float或double int转换为long,float或double 多长时间浮动或翻倍 ? 浮动到两倍 如果浮点数具有32位,而

  • 我有一个csv文件包含一些浮点数据。代码很简单 然后我将其转换为float32以节省内存使用。 值刚刚更改!我如何保持数据不变? (我也尝试了,但是print仍然得到相同的输出)

  • 问题内容: 我有一个必须解析的二进制文件,并且正在使用Python。有没有办法占用4个字节并将其转换为单个精度浮点数? 问题答案:

  • 问题内容: 有点像这个问题,但是相反。 给定类似,或的字符串,将其转换为浮点数的最佳方法是什么?我正在考虑根据情况使用正则表达式,但是也许有人知道更好的方法或预先存在的解决方案。我希望可以使用,但是我认为第3种情况可以避免这种情况。 问题答案: 我稍微调整了詹姆斯的回答。 http://ideone.com/ItifKv

  • 问题内容: 如何将GUID字符转换为VARCHAR(32)? 我正在尝试将数据从一个表复制到另一个表。这两个表中有两个相似的列。 Table1.colx 是一个GUID,因此由于连字符的原因,它的总长度为字符 对应的列是 table2.colx, 但它是VARCHAR(32) 我正在寻找一种将GUID转换为VARCHAR的方法,但是我必须删除连字符。到目前为止,我一直没有成功找到实现此目标的方法。

  • 问题内容: 正如标题所说。我不认为有可能这样做,但如果可以告诉我。 这是我正在编写的bukkit(minecraft服务器)插件所必需的。我要执行一个命令:tnt [power]。电源是我想转换为浮点数的返回字符串。 谢谢 问题答案: 用于进行转换。 和之间的区别只是回报。如果需要(对象),请使用前者;如果要数字,请使用后者。