public static void main(String[] args) throws InterruptedException{
long sTime = new Date().getTime();
Thread.sleep(3234);
long eTime = new Date().getTime();
float diff = ((eTime-sTime)/1000);
System.out.println(diff);
}
로 부동 소수점 숫자로 날짜 차이를 어떻게합니까, 내가 출력이 3.234로 기대하고 있지만 3.0입니다. 분수 부분을 사용하여 초 단위로 두 번 정확한 차이를 원합니다.내가 밀리 초 정밀도 위의 코드에서
긴 (INT) 부문. 좀 더 정밀하게 사용하려면 nanoTime()을 사용하십시오. –
'sleep'은 여러분이 지정한 시간 동안 정확하게 잠을 잘 수는 없으므로, 프로그램을 수정하더라도 3.234가 출력되지 않습니다. 아마도 밀리 초의 정밀도보다 더 거칠 것입니다. 그리고 때로는 지속 시간이 눈에 띄게 길어질 수 있습니다. – Raedwald
'float'또는 'double'을 사용하는 것은 [precision] (http://en.wikipedia.org/wiki/Double-precision_floating-point_format) 또는 플로팅으로 인해 정확한 차이 _에 대한 요구 사항과 호환되지 않습니다. 포인트 번호. BigDecimal을 사용해보십시오. –