時間を 0.0 時間で表示しようとしています。だから私は分を60で割って.xxを取得したい
これは私が持っているものですが、の後に何も得られません。入力された分数に偏りがあっても...
double hoursLeftMins = hoursRemaining + (minsRemaining/60);
recommendTime.setText(Double.toString(hoursLeftMins));
式を次のようminsRemaining
にint
変更します
double hoursLeftMins = hoursRemaining + (minsRemaining/60.0);
説明: 2 つの整数を除算すると、小数部分が切り捨てられます。小数部分を保持するために、 で除算し60.0
、数値が整数としてではなく実数として扱われるようにします。
より柔軟になりたい場合は、TimeUnitを試してみませんか?
long millis = ... //Total time in milliseconds
String time = String.format("%d min, %d sec",
TimeUnit.MILLISECONDS.toMinutes(millis),
TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))
);
この演算では、double ではなく BigDecimal に切り替えることをお勧めします。BigDecimal では、小数点以下の桁数と丸めモードの両方を簡単に制御できます。Double.toString は、必要以上の桁数を与える場合があります。