繁体   English   中英

如何在Java中识别数字是浮点型还是双精度型

[英]how to identify if a number is of float or double type in java

19.5如何成为双精度值。 为什么我们需要在它后面附加F使其float 只想知道我们如何识别一个数字,无论它是float还是double

19.5是Java中的浮点文字。 引用Java语言规范#3.10.2

如果浮点文字后缀为ASCII字母F或f,则其类型为float。 否则,其类型为double,并且可以选择在其后缀ASCII字母D或d。


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

float value = 19.5;

Java中从doublefloat 转换是一种狭窄的原始转换 这种类型的转换应该是明确的。 这就是为什么您需要使用float类型的float文字来摆脱转换的原因

float value = 19.5f;

或明确表示此转换

float value = (float) 19.5;

用于处理垂头丧气或缩小转换范围。 每当将long转换为int或将double转换为float时,都存在数据丢失的可能性。 因此,编译器将通过发出类似以下内容的编译错误来迫使您指示您确实要执行缩小转换:

float f = 19.5;

由于19.5代表双精度型,因此您必须将其显式转换为浮点型(基本上在缩小转换上签名)。 否则,通过使用正确的后缀,您可以指示该数字实际上是一个浮点数;

float f = 19.5f;

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM