11

This is the snippet:

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

someTime is derived by using System.nanoTime(). What does 1e9d do here?

Zong
  • 6,160
  • 5
  • 32
  • 46
user1071840
  • 3,522
  • 9
  • 48
  • 74

2 Answers2

10

1e9 means 10^9
2d means 2 as double

e.g.

  • sysout 1e9 => 1.0E9
  • sysout 10e9 => 1.0E10

See also the Floating-Point Literals section of The Java™ Tutorials.

Adrian
  • 3,321
  • 2
  • 29
  • 46
Georgian
  • 8,795
  • 8
  • 46
  • 87
2

The suffix d denotes a double number. If the number wasn't treated as a floating point number, then the division would be considered an integer division, returning an integer (e.g. 3/2=1).

1e9 is simply 10^9. The conversion seems to be from nanoseconds to seconds.

--EDIT--

Ingo correctly points out that 10e9 is already evaluated by java to a double (see this part of the spec for details). Therefore the 'd' isn't needed in this case.

Eyal Schneider
  • 22,166
  • 5
  • 47
  • 78
  • You should perhaps add that the notation `10e9` is already enough to establis that it is a double, at least in Java. Hence the `d` suffix is really superfluous here. – Ingo Dec 12 '13 at 16:17