我正在使用Java AWT。
我需要在double
内使用g.fillrect()
,但此功能只需int
。问题是我需要double
。如果我有int
而不是java分区将其变为零。我该如何解决这个问题?
g.fillRect(e.getX(), e.getY(), (double)(e.getWidth() * (e.getHealth() / e.getMaxHealth())), 5);
答案 0 :(得分:1)
不要将可视化健康栏的大小与健康栏的大小混淆。我们假设health是一个从0到4的int。可视化栏的大小应该是:
Foo * foo = new foo;
在除法之前先进行乘法,你的int除法应该可以正常工作。
答案 1 :(得分:0)
(int)(e.getWidth() * (double)(e.getHealth() / e.getMaxHealth()))
这样,getHealth()/ getMaxHealth()的结果将是一个double,当且仅当getWidth()*(the-result-fraction)
大于1时,这将使整个结果大于零。
如果可以获得所需的结果,您也可以使用ceil()
:
Math.ceil(e.getWidth() * (double)(e.getHealth() / e.getMaxHealth()));