初始化变量的方式有所不同:float f = 100; 或浮动f = 100f?

Mia*_*ach 5 java floating-point

Java的.

我初始化变量的方式有区别吗:

float f = 100; //implies a cast from integer to float
Run Code Online (Sandbox Code Playgroud)

要么

float f = 100f; //simply a float initialization
Run Code Online (Sandbox Code Playgroud)

结果会有所不同吗?

在这里,我尝试使用非常大的浮子,但看起来精度的损失是相同的.

float f1 = (float)2000000000;
float f2 = (float)2000000050;
float f3 = 2000000000f;
float f4 = 2000000050f;
System.out.println(f1 + " " + f2 + " " + (f1==f2) + " " + f3 + " " + f4 + " "+ (f3==f4) );
Run Code Online (Sandbox Code Playgroud)

- > 2.0E9 2.0E9 true 2.0E9 2.0E9 true

与双打有什么区别?

ajb*_*ajb 3

我想结果会是一样的。解释浮点文字的 JLS 规则引用了valueOf(String s)方法FloatDouble类型;JLS 5.1.2 给出了从整数到浮点类型的类型转换规则。两者均指“IEEE 754 舍入到最近模式”。所以我认为可以安全地假设结果是相同的。