ミリ秒を秒に (たとえば、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;
2 つの部分を別々に手動で行う必要はありません。浮動小数点演算が必要なだけで、1000.0
(double
リテラルとして) 強制的に使用できます。(あなたのmilliseconds
値は何らかの形の整数であると仮定しています。)
double
の場合と同様に、結果を正確に表現できない場合があることに注意してください。100 ミリ秒を正確にBigDecimal
0.1 秒として表現したい場合は、使用を検討してください。(これは物理量であり、そもそも 100ms は正確ではないため、おそらく a が適切ですが...)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.