2016-08-23 9 views
-5

私のアプリでは、ユーザーに時間単価を提供するように依頼してから、時間の開始からどれだけ稼いでいるかを計算したいクロノメーターがあります。これを行うには、時間単位のレートを秒レートに変換し、クロノメーターから秒単位で掛ける必要があります。 ブラケットの整数のJavaの分割

 timer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() 
    { 
     @Override 
     public void onChronometerTick(Chronometer chronometer){ 
      long timeElapsed = SystemClock.elapsedRealtime() - timer.getBase(); 
      int hours = (int) (timeElapsed/3600000); 
      int minutes = (int) (timeElapsed - hours * 3600000)/60000; 
      int seconds = (int) (timeElapsed - hours * 3600000 - minutes * 60000)/1000; 

      int hrlyRate = Integer.parseInt(hourlyRate.getText().toString()); 

      secondsRate = (hrlyRate/60)/60; 
      moneyEarned = secondsRate * seconds; 

      Log.d("hrlyRate", Integer.toString(hrlyRate)); 
      Log.d("secondsRate", Integer.toString(secondsRate)); 


     } 
    }); 

は、ユーザーが、私は、なぜsecondsRate = 0の計算があるのEditTextから入手hourlyRateフィールドに40を入力すると言いますか? (40/60)/ 60 = $ 0.01 /秒でなければならないのですか?

答えて

0

timer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() 
{ 
    @Override 
    public void onChronometerTick(Chronometer chronometer){ 
     double timeElapsed = SystemClock.elapsedRealtime() - timer.getBase(); 
     double hours = (double) (timeElapsed/3600000.0); 
     double minutes = (double) (timeElapsed - hours * 3600000.0)/60000.0; 
     double seconds = (double) (timeElapsed - hours * 3600000.0 - minutes * 60000.0)/1000; 

     double hrlyRate = Double.parseDouble(hourlyRate.getText().toString()); 

     secondsRate = (hrlyRate/60.0)/60.0; 
     moneyEarned = secondsRate * seconds; 

     Log.d("hrlyRate", Double.toString(hrlyRate)); 
     Log.d("secondsRate", Double.toString(secondsRate)); 


    } 
}); 
(使用フロート/例えば、int型と60.0f/60.0の代わりに、60の代わりにダブル)を試してみてください