0

我试图以 0.0 小时显示时间。所以我想将分钟除以 60 得到 .xx

这就是我所拥有的,但在 . 即使输入的分钟数是奇数...

double hoursLeftMins = hoursRemaining + (minsRemaining/60);
recommendTime.setText(Double.toString(hoursLeftMins));
4

3 回答 3

2

如果将minsRemaining表达式int更改为

double hoursLeftMins = hoursRemaining + (minsRemaining/60.0);

说明:如果将两个整数相除,小数部分将被截断。为了保留小数部分,除以60.0,以便将数字视为实数,而不是整数。

于 2013-02-05T16:23:46.920 回答
0

对于这种算术,我建议切换到 BigDecimal,而不是 double。在 BigDecimal 中,可以轻松控制小数点后的位数和舍入方式。Double.toString 可能会提供比您想要的更多的数字。

于 2013-02-05T16:37:35.470 回答
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))
             );
于 2013-02-05T16:26:27.287 回答