舍入特定十进制数java的小数

时间:2016-03-01 19:58:08

标签: java

如何在减去十进制数时获得正确的时间。我想减去数字,好像它是时钟。但时间只有60分钟,而数字则为100.我怎样才能对小数位设置某种限制,使其像时间一样。

1 个答案:

答案 0 :(得分:0)

这是一种方式。经过的时间以毫秒为单位,因为这是从完成System.currentTimeMillis()中减去启动System.currentTimeMillis()时所具有的。

public String formatElapsedTime(long elapsedTime) {
    int centiseconds = (int) (((elapsedTime % 1000L) + 5L) / 10L);
    centiseconds %= 10;
    int seconds = (int) (elapsedTime / 1000L);
    int minutes = seconds / 60;
    seconds -= minutes * 60;
    int hours = minutes / 60;
    minutes -= hours * 60;

    if (hours > 0) {
        return String.format("%2d:%02d:%02d.%02d", hours, minutes, seconds,
                centiseconds);
    } else if (minutes > 0) {
        return String.format("%2d:%02d.%02d", minutes, seconds,
                centiseconds);
    } else {
        return String.format("%2d.%02d", seconds, centiseconds);
    }
}

当您以小时为单位测量经过时间时,您可能不需要显示厘秒数。

因为我的格式字符串以“%2d”开头,小于10的秒,分钟和小时都有一个空格作为字符串的第一个字符。我发现这样可以防止显示器跳得太厉害。如果您不想要前导空格,请将格式String更改为“%1d”。

您也可以计算很长时间的天数。您可能需要“3天,6小时,25分钟和13秒”等格式。或者不是。