当前位置: 首页 > 面试题库 >

表示Java中的float值

干亮
2023-03-14
问题内容

查看下面的三行代码。

  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字母Ff;
为后缀,则为类型。否则,其类型为double,并且可以选择在其后缀ASCII字母Dd

如果没有明确的缩小转换,则不能为分配一个doublefloat。因此,您有两种选择:

  • 对于文字,请使用后缀fF表示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种特定于原始类型的特定转换称为 扩大原始转换

  • intlongfloatdouble
  • […]

文字的其他数据类型后缀

正如上面提到的,另外还有Dd为后缀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字面量还有一个后缀,即Ll(小写字母)。这是 强烈建议 您使用大写字母变体。

[JLS

3.10.1整数文字](http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.10.1)

long如果以ASCII字母Llell)作为后缀,则为整数文字。否则为类型int。后缀L是首选,因为字母lell)通常很难与数字1one)区分。



 类似资料:
  • 本文向大家介绍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()方法是一个非静态方法,只能通过类对象访问