0

次の 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);  
  }

}

これは、間隔の長さが経過した時間の割合を設定します。これは、間隔の割合と同じ円の境界の割合をレンダリングするために使用されます。

私の問題は、長い型よりも高い精度が必要なことです。

変数を float または double にキャストすると、オーバーフローします。

このような状況で精度を上げるにはどうすればよいですか?

4

2 に答える 2

0

System.nanoTime() は、ナノタイムの精度で探しているものでなければなりません。

于 2013-09-03T22:32:56.637 に答える