我希望儘可能將毫秒轉換爲秒(例如1500ms至1.5s或500ms至0.5s)。如何將毫秒數轉換爲精度
Double.parseDouble(500/1000 + "." + 500 % 1000);
不是最好的方法:我正在尋找一種方法來從除法操作中獲得餘數,所以我可以簡單地將餘數加在上面。
我希望儘可能將毫秒轉換爲秒(例如1500ms至1.5s或500ms至0.5s)。如何將毫秒數轉換爲精度
Double.parseDouble(500/1000 + "." + 500 % 1000);
不是最好的方法:我正在尋找一種方法來從除法操作中獲得餘數,所以我可以簡單地將餘數加在上面。
當然,你只需要:
double seconds = milliseconds/1000.0;
有沒有需要手動分別做了兩個部分 - 你只需要浮點運算,它使用的1000.0
(作爲double
文字)的部隊。 (我假設你的milliseconds
值是某種形式的整數。)
請注意,像往常一樣double
,你可能無法完全表示結果。考慮使用BigDecimal
如果你想表示100ms爲0.1秒剛好。 (考慮到這是一個物理量,和100ms的不會是首先準確,一個double
可能是合適的,但是......)
你爲什麼不乾脆試試
System.out.println(1500/1000.0);
System.out.println(500/1000.0);
謝謝,我會選擇這個作爲最好的答案,但喬恩的一點更詳細 –
我也有這個問題,不知何故,我的代碼沒有提供確切的值,但將秒數舍入到0.0(如果毫秒小於1秒)。 幫助我的是將小數加在除法值上。
double time_seconds = time_milliseconds/1000.0; // add the decimal
System.out.println(time_milliseconds); // Now this should give you the right value.
如果使用'INT/1000.0'你不會看到表示錯誤,如果您轉換回字符串,這將是它校正幅度。 –
謝謝,從來不知道那是那麼簡單! –
這是一個風格問題,但我個人更喜歡'1000D'到'1000.0',因爲它使得它更清晰,它是一個雙重字面,末尾沒有'.0',這真的讓我強迫症。 – bcsb1001