如何在java中识别数字是浮点型还是双精度型 3 月,3 周 Questions & Answers 1074 19.5是一个双倍值。为什么我们需要向它添加F使其成为float?只是想知道我们如何识别一个数字,是float还是double
# 1 楼答案 用于处理降级或缩小转换范围。无论何时将long向下转换为int,或将double向下转换为float,都存在数据丢失的可能性。因此,编译器将通过发出编译错误的信号,迫使您指示您确实想要执行缩小转换,如下所示: float f = 19.5; 因为19.5代表double,所以必须显式地将其转换为float(基本上是在缩小转换上签字)。否则,您可以通过使用正确的后缀来指示数字实际上是一个浮点 float f = 19.5f; 默认情况下,19.5是双字面值,因此要告诉编译器显式地将其视为浮点->;它使用f或f
# 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中,从double到float的转换是narrowing primitive conversion。这种类型的转换应该是显式的。这就是为什么需要使用float类型的浮点文本来消除转换 float value = 19.5f; 或者让这种转换明确化 float value = (float) 19.5;
# 1 楼答案
用于处理降级或缩小转换范围。无论何时将long向下转换为int,或将double向下转换为float,都存在数据丢失的可能性。因此,编译器将通过发出编译错误的信号,迫使您指示您确实想要执行缩小转换,如下所示:
float f = 19.5;
因为19.5代表double,所以必须显式地将其转换为float(基本上是在缩小转换上签字)。否则,您可以通过使用正确的后缀来指示数字实际上是一个浮点
float f = 19.5f;
默认情况下,19.5是双字面值,因此要告诉编译器显式地将其视为浮点->;它使用f或f
# 2 楼答案
19.5
是java中的浮点文字。引用Java Language Specification #3.10.2现在,当我们知道
19.5
是double类型时,让我们看看注释中的示例:在java中,从
double
到float
的转换是narrowing primitive conversion。这种类型的转换应该是显式的。这就是为什么需要使用float
类型的浮点文本来消除转换或者让这种转换明确化