首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java规范示例中的错误?

Java规范示例中的错误?
EN

Stack Overflow用户
提问于 2015-06-30 17:20:13
回答 1查看 139关注 0票数 1

有两种主要的原语转换:

  • 扩大转换范围;
  • 缩小转换。

我正在阅读关于在Java规范中扩展转换的内容,这里我看到了以下图片:

代码语言:javascript
复制
int big = 1234567890;
float approx = big; // good, it's widening conversion (int -> float)
System.out.println(big - (int)approx); // what? (float -> int)

在最后一行代码中,我认为正在缩小转换范围,对吗?如果我错了,请解释一下!提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-30 17:27:10

是的,最后一行使用缩窄转换,这就是为什么强制转换是必要的。该示例用于演示中线上的拓宽转换会丢失信息,仅此而已:

该程序打印-46,从而表明在从int类型转换到类型浮点数时丢失了信息,因为浮点数类型的值不精确到9个有效数字。

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

https://stackoverflow.com/questions/31144486

复制
相关文章

相似问题

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