首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JLS似乎自相矛盾

JLS似乎自相矛盾
EN

Stack Overflow用户
提问于 2013-10-01 13:19:17
回答 3查看 152关注 0票数 3

请回顾一下Oracle规范-第5章

这一行:

扩大的原语转换不会丢失有关数字值的总体大小的信息。

然后是下面两行,这条线表示震级信息可能会丢失。

从浮点数到双倍的拓宽的原语转换不受限制,可能会丢失有关转换值的总体大小的信息。

这似乎是一个明显的矛盾,这是一个错误吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-01 16:14:41

值得注意的是,JVM规范在2.11.4中的措辞更加清晰一些

扩大数值转换不会丢失有关数字值的总体大小的信息。实际上,从int扩展到long和int到double的转换根本不会丢失任何信息;数值是完全保留的。从浮点扩大到双倍的转换(FP-严格(§2.8.2) )也严格保留数值;然而,--然而,,这种非FP的转换--严格的转换可能会丢失有关转换值的总体大小的信息。

票数 2
EN

Stack Overflow用户

发布于 2013-10-11 12:48:51

是的,确实如此。来自先知:

嗨比尔 谢谢你的来信。我同意以下几点之间的矛盾: “不断扩大的原语转换不会丢失有关数字值的总体大小的信息。” 以及: “从浮点数扩大到双倍的原语转换不严格,可能会丢失有关转换值的总体大小的信息。” 只有第一句出现在第一版的JLS,在引入严格的to之前。第二句出现在JLS第二版,作为严格支持的一部分,第一句应同时修改。在Java 8版中,我将澄清的是,只有一些拓宽的原语转换才不会丢失震级信息。

票数 3
EN

Stack Overflow用户

发布于 2013-10-01 13:28:21

这更像是一种澄清。在浮点到双转换的特定情况下,除非指定了,否则无法保证不丢失信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19117279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档