2013-11-14 129 views
14

Sto scrivendo un programma che riguarda la massa e il diametro dei pianeti; Queste quantità sono espresse in notazione scientifica. La mia domanda NON è, intendiamoci, NON come si stampano grandi numeri nel modo giusto (che sta usando printf(), duh), è come vorrei ... "digitare" questi numeri, immagino si possa dire. Ad esempio, la massa di mercurio si esprime:Come esprimere numeri in notazione scientifica in java?

3.30 x 10ˆ23 

E nella mia gamma di masse pianeta, un elemento apparirebbe:

33.0 * Math.pow(10, 23) 

Tuttavia, non del tutto che questo sia il modo giusto - Sembra che genererebbe un'eccezione ... Quindi come potrei esprimere grandi numeri come quelli dal punto di vista di un programmatore? Grazie!

+0

Credo che questa discussione risponde alla stessa identica domanda: http://stackoverflow.com/questions/2944822/format-double-value-in-scientific- notazione – DerStrom8

risposta

20

Section 3.10.2 of the JLS parla letterali in virgola mobile in Java. In breve, fornire la parte decimale come se fosse la notazione scientifica, ma invece di x 10^23 si può scrivere e23:

3.30e23 

Per scrivere una con esponente negativo, si può fare facilmente anche per 6.67 x 10^(-11):

6.67e−11 
4

Java supporta la notazione scientifica:

3.30e23 
-3

Si può provare a inizializzare una variabile lunga e provare a lanciarla come doppia/mobile. Che può funzionare ma non sono al 100%