So wandeln Sie Millisekunden präzise in Sekunden um
Ich konvertieren wollen Millisekunden bis Sekunden (zum Beispiel 1500ms bis 1,5 s oder 500 MS, 0,5 s) mit so viel Präzision wie möglich.
Double.parseDouble(500 /1000 + "." + 500 % 1000);
ist nicht der beste Weg, es zu tun: ich bin auf der Suche nach einem Weg, um den Rest aus einer division, so konnte ich Sie einfach fügen Sie den Rest auf.
InformationsquelleAutor der Frage Keir Nellyer | 2012-12-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sicherlich brauchen Sie nur:
Gibt es keine Notwendigkeit, manuell zu tun, die beiden Teile getrennt, die Sie gerade brauchen, Gleitkomma-Arithmetik, die die Verwendung von
1000.0
(alsdouble
literal) Kräfte. (Ich gehe davon aus, dass Ihremilliseconds
Wert ist ein integer, der in irgendeiner form.)Beachten Sie, dass wie gewohnt mit
double
Sie möglicherweise nicht in der Lage zu repräsentieren, das Ergebnis genau. Erwägen Sie die VerwendungBigDecimal
wenn Sie repräsentieren wollen 100ms als 0,1 Sekunden genau. (Gegeben, dass es eine physikalische Größe, und die 100ms wäre nicht genau in den ersten Platz, einedouble
ist wahrscheinlich angebracht, aber...)InformationsquelleAutor der Antwort Jon Skeet
Warum gehst du nicht einfach versuchen
InformationsquelleAutor der Antwort Ankur
Ich hatte auch dieses problem, irgendwie scheint mein code nicht vorhanden die genauen Werte gerundet die Zahl in Sekunden (0,0) (wenn Millisekunden wurde unter 1 Sekunde).
Was mir geholfen ist das hinzufügen der Dezimalwert der division Wert.
InformationsquelleAutor der Antwort John