我有以下 Java 代码:
public class Time {
private Main m;
private long st;
private long et;
public Time(Main m, long g){
this.m = m;
st = System.currentTimeMillis();
et = st+g;
}
public void update() {
long now = System.currentTimeMillis();
float per;
if (st >= et || now >= et) {
m.setPer(100);
return;
}
if (now <= st) {
m.setPer(000);
return;
}
per = (now - st) * 100 / (et - st);
System.out.println(per);
m.setPer(per);
}
}
它设置间隔长度已经过去的时间百分比,用于渲染与间隔百分比相同的圆边界百分比。
我的问题是我需要比 long 类型更高的精度,因为它很跳跃。
当我将变量转换为 float 或 double 时,它会溢出。
在这些情况下如何获得更高的精度?