2013-12-12 8 views
5

Questo è il frammento:Cosa significa divisione per 1e9d?

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

someTime è derivato utilizzando System.nanoTime(). Cosa fa 1e9d qui?

+4

10^9 come doppia (tipo di ridondante). – Zong

+1

È in nano secondo, quindi avrai 1 000 000 000 ns ogni 1 secondo. Se vuoi visualizzare l'ora in semplici secondi, dovrai dividerla per 10e9 – Fabinout

+0

1e9d è notazione scientifica – Tyler

risposta

4

1e9 mezzi 10^9
2d significa 2 come

esempio

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

Come esprimerò 1.0e-3 sulle stesse linee? '1e-3d'? Non mi dà alcun errore. – user1071840

+0

@ user1071840 O semplicemente '1e-3' – GGrec

+0

Grazie per la rapida risposta. – user1071840

1

Il suffisso d indica un numero doppio. Se il numero non è stato trattato come un numero in virgola mobile, la divisione verrà considerata una divisione intera, restituendo un numero intero (ad esempio 3/2 = 1).

1e9 è semplicemente 10^9. La conversione sembra essere da nanosecondi a secondi.

--EDIT--

Ingo fa giustamente notare che 10E9 è già valutata da Java ad una doppia (vedi this part of the spec per i dettagli). Quindi la 'd' non è necessaria in questo caso.

+0

Dovresti forse aggiungere che la notazione '10e9' è già abbastanza per stabilire che è un doppio, almeno in Java. Quindi il suffisso 'd' è davvero superfluo qui. – Ingo