所以我想爲玩家制作一個健康欄的遊戲,但每當我使用交叉產品或任何其他數學方法時應該使用的百分比結果是0.0
... 這是處理這個問題的.java文件:如何計算Java中的百分比?
package com.game.graphics;
import com.game.entity.mob.Mob;
public class HUD {
Mob target;
Sprite healthbar;
Sprite bgBar;
double percent_normal;
public HUD(Mob target) {
this.target = target;
bgBar = new Sprite(0xff777777, 104, 8);
healthbar = new Sprite(0xffFF0000, 100, 6);
}
public void update() {
percent_normal = target.getHealth()/100;
percent_normal *= target.getMaxHealth();
}
public void printData() {
System.out.println("Normal(" + percent_normal + ")");
// if the targets's health is any lower than the max health then this seems to always return 0
}
public void render(Screen s) {
s.renderSprite(5, 5, bgBar, false);
s.renderSprite(7, 6, new Sprite(0xffFF0000, (int) percent_normal, 6), false);
}
}
我不確定我的數學是否完全關閉,或者如果我正在討論這個可怕的錯誤。我試圖查找如何計算它無濟於事,所以這就是爲什麼我在這裏提出這個問題。
如何計算_math_中的百分比?你除以100還是乘以? O.o – Rishav
是'target.getHealth()'一個整數嗎? '/ 100'將是整數除法,並舍入(最可能爲零)。 – Teepeemm
可能重複的[爲什麼用整數分隔一個float返回0.0?](http://stackoverflow.com/questions/3779604/why-does-dividing-a-float-by-an-integer-return-0- 0) – MarsAtomic