Java 为什么';f';在计算后,移除浮动类型的字段

Java 为什么';f';在计算后,移除浮动类型的字段,java,Java,我是Java语言新手,最近正在准备Oracle基础认证考试。这里有一个问题让我在研究一些示例问题时感到困惑 启动浮点类型的字段时,必须给出类似“1.0f”的值。但在计算时,不再需要“f”。即使在浮点型字段的计算结果中,也缺少“f”。 只是好奇它发生了什么,有什么影响。非常感谢任何人能抽出时间回答这个问题,提前谢谢 float x = 22.00f % 3.00f; System.out.println(x); 运行后的输出为1.0,而不是1.0f 我使用的是JDK1.8。如中所述,“f”字符只

我是Java语言新手,最近正在准备Oracle基础认证考试。这里有一个问题让我在研究一些示例问题时感到困惑

启动浮点类型的字段时,必须给出类似“1.0f”的值。但在计算时,不再需要“f”。即使在浮点型字段的计算结果中,也缺少“f”。 只是好奇它发生了什么,有什么影响。非常感谢任何人能抽出时间回答这个问题,提前谢谢

float x = 22.00f % 3.00f;
System.out.println(x);
运行后的输出为1.0,而不是1.0f

我使用的是JDK1.8。

如中所述,“f”字符只是浮点文本中的浮点类型后缀。文字仅在源代码中使用。编译器必须将它们解释为特定类型

特别是,它不是存储在
float
类型化变量中的值的一部分。请看以下代码片段:

float a = 22.00f;
float b = 3.00f;
float x = a % b;
System.out.println(a);
System.out.println(b);
System.out.println(x);
这将打印出:

22.0
3.0
1.0

完全不同的是:您是否知道您使用的是
%
,当与浮点一起使用时,它的行为是一个仅限整数的操作?浮点值在实际被除之前会被截断(不是四舍五入)。有关更多信息,请参阅。

如中所述,“f”字符只是浮点文本中的浮点类型后缀。文字仅在源代码中使用。编译器必须将它们解释为特定类型

特别是,它不是存储在
float
类型化变量中的值的一部分。请看以下代码片段:

float a = 22.00f;
float b = 3.00f;
float x = a % b;
System.out.println(a);
System.out.println(b);
System.out.println(x);
这将打印出:

22.0
3.0
1.0


完全不同的是:您是否知道您使用的是
%
,当与浮点一起使用时,它的行为是一个仅限整数的操作?浮点值在实际被除之前会被截断(不是四舍五入)。有关详细信息,请参阅。

f
是浮点文本的一部分,而不是值的一部分

2f
是浮点文本,但其值的字符串表示形式为
2.0
f
只是告诉编译器“这是一个浮点文本!”

事实上,如果你只是这样做:

float x = 22.00f;
System.out.println(x);
您将获得输出
22.0
。您仍然会丢失
f

它就像字符串文字。当您用代码编写它们时,您将添加
s:


但是当您打印出来时,您会丢失
s.

f
是浮点文本的一部分,而不是值的一部分

2f
是浮点文本,但其值的字符串表示形式为
2.0
f
只是告诉编译器“这是一个浮点文本!”

事实上,如果你只是这样做:

float x = 22.00f;
System.out.println(x);
您将获得输出
22.0
。您仍然会丢失
f

它就像字符串文字。当您用代码编写它们时,您将添加
s:


但是当您打印出来时,您会丢失
s.

,因为文档中有这样的说明。这是一个问题,因此:

:此方法的行为就像调用
print(float)
然后调用
println()

:由
string.valueOf(float)
生成的字符串根据平台的默认字符编码转换为字节,这些字节完全按照
write(int)
方法写入

:表示形式与一个参数的
Float.toString
方法返回的表示形式完全相同

:如果m大于或等于10-3但小于107,则表示为m的整数部分,采用十进制形式,无前导零,后跟“.”(“\u002E”),后跟一个或多个表示m的小数部分的十进制数字


没有添加“float”后缀。

,因为文档中这么说。这是一个问题,因此:

:此方法的行为就像调用
print(float)
然后调用
println()

:由
string.valueOf(float)
生成的字符串根据平台的默认字符编码转换为字节,这些字节完全按照
write(int)
方法写入

:表示形式与一个参数的
Float.toString
方法返回的表示形式完全相同

:如果m大于或等于10-3但小于107,则表示为m的整数部分,采用十进制形式,无前导零,后跟“.”(“\u002E”),后跟一个或多个表示m的小数部分的十进制数字


没有添加“float”后缀。

根据我的理解,在数字后面添加“f”的主要原因是为了区分它和double。比如说

float x= 2.002f;
double y = 2.002;

“f”只需告诉java这个数字是一个浮点数。当你进行计算时,“f”对它没有影响。

根据我的理解,在数字后面加上“f”的主要原因是为了区分它和double。比如说

float x= 2.002f;
double y = 2.002;

“f”只需告诉java这个数字是一个浮点数。运行计算时,“f”对其没有影响。

请不要将其视为盲浮点值
float f=22.00f

这是为了提醒编译器浮点值
22.00
是float类型。
默认情况下,
22.00
将被视为double,后缀f用于提醒编译器它的浮点值不是double。

请不要将其视为盲浮点值
float f=22.00f

这是为了提醒编译器浮点值
22.00
是float类型。
默认情况下,
22.00
将被视为double,后缀f用于告知编译器它的浮点值而不是double。

f
只是向编译器发出的一个信号,表示它是一个浮点值。它不是值本身的一部分,所以打印时不包括它。
f
只是向编译器发出的一个信号,表示它是一个浮点值。它不是值本身的一部分,因此在您输入时不包括它