2013-12-12 7 views
5

Dies ist der Schnipsel:Was bedeutet Division durch 1e9d?

String myTime = someTime/1e9d + ","; 

someTime durch System.nanoTime() Verwendung abgeleitet wird. Was macht 1e9d hier?

+4

10^9 als Doppel (Art von Redundanz). – Zong

+1

Es ist in Nano-Sekunde, so dass Sie 1 000 000 000 ns alle 1 Sekunde haben. Wenn Sie die Zeit in einfachen Sekunden anzeigen möchten, müssen Sie es durch 10e9 teilen – Fabinout

+0

1e9d ist wissenschaftliche Notation – Tyler

Antwort

4

1e9 Mittel 10^9
2d Mittel 2 als Doppel

z.B.

  • SYSOUT 1e9 => 1.0E9
  • SYSOUT 10e9 => 1,0E10
+0

Wie werde ich 1.0e-3 auf den gleichen Linien ausdrücken? "1e-3d"? Es gibt mir keinen Fehler. – user1071840

+0

@ user1071840 Oder einfach '1e-3' – GGrec

+0

Danke für die schnelle Antwort. – user1071840

1

Das Suffix d bezeichnet eine doppelte Anzahl. Wenn die Zahl nicht als Gleitkommazahl behandelt würde, würde die Division als ganzzahlige Division angesehen werden, die eine ganze Zahl (z. B. 3/2 = 1) zurückgibt.

1e9 ist einfach 10^9. Die Umwandlung scheint von Nanosekunden zu Sekunden zu sein.

--EDIT--

Ingo weist zu Recht darauf hin, dass 10E9 bereits von Java zu einem Doppel ausgewertet wird (this part of the spec für Details). Daher wird das "d" in diesem Fall nicht benötigt.

+0

Sie sollten vielleicht hinzufügen, dass die Notation '10e9' bereits genug ist, um zu bestätigen, dass es ein Double ist, zumindest in Java. Daher ist das Suffix "d" hier wirklich überflüssig. – Ingo