long<;名称>;=(长)<;表达式>;;你喜欢Java吗?

long<;名称>;=(长)<;表达式>;;你喜欢Java吗?,java,types,int,long-integer,Java,Types,Int,Long Integer,表达式前面的下列语句中的(long)和(int)是什么意思 long years = (long) (minutes / minutesInYear); int remainingDays = (int) (minutes / 60 / 24) % 365; 强制转换对象,因为int不是长的,而long不是int inti=(int)10L-因为10L是长的,您希望它是int。强制转换对象,因为int不是长的,long不是int inti=(int)10L-因为10L很长,您希望它是int。您

表达式前面的下列语句中的
(long)
(int)
是什么意思

long years = (long) (minutes / minutesInYear);
int remainingDays = (int) (minutes / 60 / 24) % 365;

强制转换对象,因为int不是长的,而long不是int


inti=(int)10L-因为10L是长的,您希望它是int。

强制转换对象,因为int不是长的,long不是int


inti=(int)10L-因为10L很长,您希望它是int。

您看到的是从一种值类型转换到另一种值类型

EDIT:之所以可以这样做,是因为如果您使用泛型类型或继承(参见示例),并且无法事先确定对象类型,则可能需要它。但是对于这类代码,最好首先使用正确的类型并避免错误!(在本例中为双倍)

由于int没有十进制值,存储在int对象中的数据将不是计算的精确值(长时间内相同)

如果你想要精确的值,你应该看一个双精度的

这也适用于非数值,方法如下:

Object car = new Car();
Car myNewCar = (Car) car;

我希望这能有所帮助。

你看到的是从一种价值类型转换到另一种价值类型

EDIT:之所以可以这样做,是因为如果您使用泛型类型或继承(参见示例),并且无法事先确定对象类型,则可能需要它。但是对于这类代码,最好首先使用正确的类型并避免错误!(在本例中为双倍)

由于int没有十进制值,存储在int对象中的数据将不是计算的精确值(长时间内相同)

如果你想要精确的值,你应该看一个双精度的

这也适用于非数值,方法如下:

Object car = new Car();
Car myNewCar = (Car) car;
我希望这能有所帮助。

(一年中的分钟数)
不清楚它将返回什么类型的变量。如果要将其写入int变量,必须在其前面写入
(int)
。这就是所谓的“类型转换”,它基本上是将一种格式转换为另一种格式。你会注意到
inta=10.5不起作用,但
inta=(int)10.5可以

在您的示例中,您希望将:
(分钟/分钟/年)
存储在浮点中。因此,为了确保它成为浮点型,您可以使用
(float)
(minutes/minutesInYear)
对它返回的变量类型进行类型转换。如果要将其写入int变量,必须在其前面写入
(int)
。这就是所谓的“类型转换”,它基本上是将一种格式转换为另一种格式。你会注意到
inta=10.5不起作用,但
inta=(int)10.5可以


在您的示例中,您希望将:
(分钟/分钟/年)
存储在浮点中。因此,为了确保它成为一个浮点,您可以使用
(float)

键入它。您正在谈论的内容称为铸造

可以将右侧的表达式转换为左侧的表达式

可以对基元类型和类进行转换

铸造意味着将一个特定类型的对象“转化为”另一个对象类型。此过程也称为铸造变量

更多信息,请阅读


在您的例子中,之所以使用强制转换,是因为您正在将一个基本类型为double(位于右侧)的变量转换为一个类型为int(位于左侧)的变量。

您正在谈论的事情称为强制转换

可以将右侧的表达式转换为左侧的表达式

可以对基元类型和类进行转换

铸造意味着将一个特定类型的对象“转化为”另一个对象类型。此过程也称为铸造变量

更多信息,请阅读


在您的例子中,之所以使用强制转换,是因为您正在将基本类型为double(位于右侧)的变量转换为类型为int(位于左侧)的变量。

在括号中包含一个类型通常意味着强制转换,不仅在Java中,在其他语言(例如C#)中也是如此

在第一种情况下,如果minutesInYear和minutesInYear是整数,该操作将生成一个整数然后将其强制转换为long,与整数相同,但为64位而不是32位(它可以存储更大的值)

在第二种情况下,恰好相同,但将其强制转换为整数,,这可能是多余的,因为结果已经是整数了


然而,如果将非整数值(float,double)转换为整数值(byte,short,int,long),它将返回截断值,而不是四舍五入值。

在括号内有一个类型通常意味着转换,不仅在Java中,在其他语言中(例如C#)

在第一种情况下,如果minutesInYear和minutesInYear是整数,该操作将生成一个整数然后将其强制转换为long,与整数相同,但为64位而不是32位(它可以存储更大的值)

在第二种情况下,恰好相同,但将其强制转换为整数,,这可能是多余的,因为结果已经是整数了


但是,如果将非整数值(float,double)强制转换为整数值(byte,short,int,long),它将返回截断值,而不是舍入值。

这称为强制转换:尝试不强制转换,您应该得到answ