查看下面的三行代码。
float f = 1;
float g = 1.1;
float h = 1.1f;
第二行有编译错误,而其他行没有编译错误。第一行在没有后缀f的情况下工作正常,第三行在有后缀f的情况下工作。为什么是这样?
double
默认情况下,Java中的浮点文字是一个值。
[JLS
3.10.2浮点文字](http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.10.2)
如果浮点字面量
float
以ASCII字母F
或f
;
为后缀,则为类型。否则,其类型为double
,并且可以选择在其后缀ASCII字母D
或d
。
如果没有明确的缩小转换,则不能为分配一个double
值float
。因此,您有两种选择:
f
或F
表示float
值(float)
后者的一个示例是:
double d = 1.1;
float f = (float) d; // compiles fine!
编译的原因:
float f = 1;
这是因为从int
到的扩展转换float
可以在分配的上下文中隐式完成。
[JLS
5.2任务转换](http://java.sun.com/docs/books/jls/third_edition/html/conversions.html#5.2)
__当将表达式的值分配给变量时, 将 发生 赋值转换 :必须将表达式的类型转换为变量的类型。分配上下文允许使用以下之一:
- 不断扩大的原始转换(第5.1.2节)
- […]
[JLS
5.1.2扩展原始转换](http://java.sun.com/docs/books/jls/third_edition/html/conversions.html#5.1.2)
以下19种特定于原始类型的特定转换称为 扩大原始转换 :
int
到long
,float
或double
- […]
正如上面提到的,另外还有D
或d
为后缀double
。请考虑以下示例:
static void f(int i) {
System.out.println("(int)");
}
static void f(double d) {
System.out.println("(double)");
}
//...
f(1); // prints "(int)"
f(1D); // prints "(double)"
long
字面量还有一个后缀,即L
或l
(小写字母)。这是 强烈建议 您使用大写字母变体。
[JLS
3.10.1整数文字](http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.10.1)
long
如果以ASCII字母L
或l
(ell
)作为后缀,则为整数文字。否则为类型int
。后缀L
是首选,因为字母l
(ell
)通常很难与数字1
(one
)区分。
本文向大家介绍Java Float类byteValue()方法的示例,包括了Java Float类byteValue()方法的示例的使用技巧和注意事项,需要的朋友参考一下 Float类方法 byteValue()方法在java.lang包中可用。 byteValue()方法用于返回此Float对象表示的值,该值已转换为字节类型(通过强制转换)。 byteValue()方法是一种非静态方法,只能通过
问题内容: 我写了这段代码: 我得到这个: 为什么?的定义是什么? 问题答案: 在Java中,当您输入一个十进制数为时,它被解释为。是64位精度的IEEE 754浮点,而32位精度的IEEE 754浮点。由于a 的精确度低于a ,因此无法隐式执行转换。 如果要创建浮点数,则应以(。:) 结尾。 有关更多说明,请参见Java教程的原始数据类型定义。
本文向大家介绍Java Float类isNaN()方法与示例,包括了Java Float类isNaN()方法与示例的使用技巧和注意事项,需要的朋友参考一下 语法: float 类方法 isNaN()方法在java.lang包中可用。 isNaN()方法用于检查NaN值(即正NaN或负NaN)。 isNaN(float value)方法用于检查给定float参数的NaN值(即正或负NaN)。 在检查
本文向大家介绍Java Float类parseFloat()方法与示例,包括了Java Float类parseFloat()方法与示例的使用技巧和注意事项,需要的朋友参考一下 Float类方法 parseFloat()方法在java.lang包中可用。 parseFloat()方法用于返回与给定String表示形式相对应的float值,换句话说,我们可以说此方法用于将字符串值转换为float值。
本文向大家介绍Java Float类shortValue()方法与示例,包括了Java Float类shortValue()方法与示例的使用技巧和注意事项,需要的朋友参考一下 Float类方法 shortValue()方法在java.lang包中可用。 shortValue()方法用于返回此Float对象表示的值,该值已转换为short类型(通过强制转换)。 shortValue()方法是一种非静
本文向大家介绍Java Float类intValue()方法与示例,包括了Java Float类intValue()方法与示例的使用技巧和注意事项,需要的朋友参考一下 Float类方法 intValue()方法在java.lang包中可用。 intValue()方法用于返回此Float对象表示的值,该值转换为int类型(通过强制转换)。 intValue()方法是一个非静态方法,只能通过类对象访问