有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (2) 个答案

  1. # 1 楼答案

    用于处理降级或缩小转换范围。无论何时将long向下转换为int,或将double向下转换为float,都存在数据丢失的可能性。因此,编译器将通过发出编译错误的信号,迫使您指示您确实想要执行缩小转换,如下所示:

    float f = 19.5;

    因为19.5代表double,所以必须显式地将其转换为float(基本上是在缩小转换上签字)。否则,您可以通过使用正确的后缀来指示数字实际上是一个浮点

    float f = 19.5f;

    默认情况下,19.5是双字面值,因此要告诉编译器显式地将其视为浮点->;它使用f或f

  2. # 2 楼答案

    19.5是java中的浮点文字。引用Java Language Specification #3.10.2

    A floating-point literal is of type float if it is suffixed with an ASCII letter F or f; otherwise, its type is double and it can optionally be suffixed with an ASCII letter D or d.


    现在,当我们知道19.5是double类型时,让我们看看注释中的示例:

    float value = 19.5;
    

    在java中,从doublefloat的转换是narrowing primitive conversion。这种类型的转换应该是显式的。这就是为什么需要使用float类型的浮点文本来消除转换

    float value = 19.5f;
    

    或者让这种转换明确化

    float value = (float) 19.5;