Java 如何打印十进制移位的整数?

Java 如何打印十进制移位的整数?,java,Java,我有一个以毫秒为单位的长计数器,我想打印出秒数。也就是说,给定15毫秒我想输出0.015,给定1234毫秒我想输出1.234。有没有一个简单的方法来实现这一点,或者我必须编写一个方法 // I mean this works but public void foo(long n) { String res = "" + n / 1000 + "."; n = n % 1000; if (n < 100) { res += "0"; i

我有一个以毫秒为单位的长计数器,我想打印出秒数。也就是说,给定15毫秒我想输出0.015,给定1234毫秒我想输出1.234。有没有一个简单的方法来实现这一点,或者我必须编写一个方法

// I mean this works but
public void foo(long n) {
    String res = "" + n / 1000 + ".";
    n = n % 1000;
    if (n < 100) {
        res += "0";
        if (n < 10) {
            res += "0";
        }
    }
    res += n;
    return res;
}
//我的意思是这是可行的,但是
公众休憩处(长北){
字符串res=”“+n/1000+”;
n=n%1000;
如果(n<100){
res+=“0”;
如果(n<10){
res+=“0”;
}
}
res+=n;
返回res;
}

基础数学
1234*0.001
或仅1234/1000.0应该有效?并且您的void方法不能返回value@Zephyr但这将返回double,它并不总是精确地表示我们想要的十进制数。例如,
9*0.001
将被计算为
0.009000000000000001
,这不是我们想要打印的内容。这里的
(float)
有什么意义
anything/double
变为
double
,这是
%.3f
的可接受值。是的,我同意,不需要类型转换
System.out.printf("%.3f", (float) n / 1000.0) ;