【发布时间】:2016-02-19 10:15:44
【问题描述】:
我实际上没有具体的代码,但我和一个朋友的代码完全相同,只是他使用了0.,而我只使用了0。我的编译了,但他没有,直到他删除了点。但是现在,我无意中初始化了一个变量double x = 0.,忘记删除点,它编译了!为什么?
【问题讨论】:
-
这个小组的主题不是很重要。可能属于 StackExchange。但答案是 0 是一个整数立即数,而 0. 是一个浮点数立即数。
-
扩展@BrianHibbert 的评论:更准确地说,
0.是double类型的文字。 -
并进一步扩展。问题是信息的转换和丢失之一。 double 可以保存任何可以存储在整数中的数字,但反之则不然。编译器通常会自动将整数原语转换为浮点类型,但不会将浮点类型转换为整数以防止潜在的数据丢失。
标签: java types floating-point integer