整数或双精度返回值
我传入了一个 Integer 值,然后将其除以 100,因此结果可以是 int 或 double,所以不确定是否强制转换它。
public void setWavelength(Integer value) {
this.wavelength = value;
}
然后值除以 100
pluggable.setWavelength(entry.getPluggableInvWavelength()/100);
所以不知道如何转换这个值/对象
I have an Integer value been passed in and then it is divided by 100, so result could either be an int or double so not sure if cast it or not.
public void setWavelength(Integer value) {
this.wavelength = value;
}
then value divided by 100
pluggable.setWavelength(entry.getPluggableInvWavelength()/100);
So not sure how to cast this value/object
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果将一个整数 (
int
) 除以另一个整数 (int
),结果将再次成为整数 (int
)。-- 更多详细信息:15.17 乘法运算符
需要将其中一个或两个标记为 double
或
请注意,
java.lang.Integer
是一种不可变的包装类型,而不是int
! - 事实上你不能使用java.lang.Integer
进行计算,但从Java 1.5开始编译器会自动将int
转换为Integer
并返回(自动装箱和自动拆箱)。但一般来说,最好理解其中的差异,并且仅当您确实需要对象(而不是要计算的数字)时才使用 Integer。If you divide an integer (
int
) by an other integer (int
) the result will be an integer (int
) again.-- More details: 15.17 Multiplicative Operators
You need to mark one or both as double
or
Pay attention to the fact, that
java.lang.Integer
is a immutable wrapper type and not anint
! - In fact you can not calculate withjava.lang.Integer
, but since Java 1.5 the compiler will convertint
toInteger
and back automatically (auto boxing and auto unboxing). But in general it is better to understand the difference and useInteger
only if you real need objects (and not numbers to calculate).如果
waveLength
为double
,则有:d
表示该数字被视为double
,因此除法结果是双
。If
waveLength
isdouble
, then have:d
means that the number is treated asdouble
, and hence the division result isdouble
.如果将
int
除以int
,则始终会得到int
。如果您想要一个float
或double
(因为您需要表示结果的小数部分),那么您需要转换一个或两个输入:If you divide an
int
by anint
, you always get anint
. If you want afloat
or adouble
(because you need to represent fractional parts of the result), then you'll need to cast one or both inputs:如果entry.getPluggableInvWavelength()返回一个
int
,/100
的结果也将是一个int
如果你必须有一个双结果,那么您必须存储双重结果。
除以 100.0 即可获得具有 2 位小数的双精度结果。
if entry.getPluggableInvWavelength() returnsd an
int
the results of/100
will also be anint
If you have to have a double result, then you must store a double result.
Dividing by 100.0 is all you need to have a double result with 2 decimal places.