为什么当我尝试编译以下代码时会收到此错误消息?
float a = 1/0.1;
System.out.println(a);
或
float b = 1/0.002;
System.out.println(b);
不兼容的类型:从double到float的可能有损转换
我溢出来了吗?我想了解这背后的理论。提前感谢。
< code>0.1和< code>0.002是< code >双精度文字。Java的< code>double类型比它的< code>float类型更精确。因此,当您将< code>double转换为< code>float时,可能会通过将数字舍入到可在< code>float中表示的最接近的值来更改数字。以十进制为例,将四位数的. 1234赋给两位数的类型会产生一个不同的数字. 12。
当您通过赋值到 float
变量隐式执行此转换时,编译器会告诉您可能会丢失信息。通过使用强制转换,您可以告诉编译器转换为不太精确的格式是有意为之。或者,通过使用浮点
型文字(如 0.1f
和 0.002f
),可以始终使用浮点值
并避免转换。
一般来说,选择一种类型,< code>float或< code>double,并在整个计算过程中使用它,包括文字和变量。
使用浮点文字:
float a = 1f / 0.1f;
这是我的代码。我想显示月份的名称而不是数字。但是我的代码中有一个错误。 它说“不兼容的类型:可能的有损转换从长到整数”。我的代码中的错误是:-
在尝试绘制图形时,我得到了下面的错误,我的x和y是FLoat类型。 我得到的错误:
我试图在我的对话框中添加一个总计,但是我得到了一个错误信息,我似乎不能修复它。如果我试图将总计放入for循环中,它会在对话框中打印5次。我确实需要将总计打印在对话框的最后
我试图为学校编写一些东西,但我不断收到这个编译错误: 错误:不兼容的类型:从int到byte的转换可能有损失 A = (字节)C / (字节)B;
我有一个问题,我必须把公里转换成英里。我是一个新手程序员,所以请原谅我。 这是我到目前为止的代码: 它给我一个错误提示:
我对这里的代码有疑问: 我不确定究竟是哪个部分导致了以下错误: 不兼容的类型:从整数到字节的可能有损转换 这是程序输出的错误消息: