Domanda

C'è un'astrazione classe Java per indicare i numeri scientifica (e.g. the number, 10 power modulus), in modo che io possa fare operazioni semplici come la moltiplicazione o divisione su di essi.

Nota: Alla ricerca di qualcosa di simile a Fraction qui.

È stato utile?

Soluzione

Come ha detto Emil, BigDecimal ti aiuta. Non ha un costruttore che consente di immettere un doppio mantissa e un int esponente. Si potrebbe estendere la classe per fare un nuovo costruttore, o, si potrebbe definire un DecimalFormat. Penso che la DecimalFormat classe sarà fare un po 'di ciò che si desidera. Esso consente di come definire come un numero 'sguardi'. È necessario definire il formato utilizzando una stringa, il tutorial è http://download.oracle.com/javase/tutorial/i18n/format /decimalFormat.html

Si dovrebbe definire il formato dei numeri scientifici, chiamata yourDecimalFormat.parse(yourStringtoBecomeScientificNumber) che vi darà un numero, poi gettato come un BigDecimal di fare aritmetica su di esso.

Si noti inoltre che questo dovrebbe permettere di forzare un certo numero di cifre significative o cifre a sinistra del punto decimale.

Altri suggerimenti

Non ho ricevuto il vostro example.If avete bisogno di un diverso tipo di rappresentazione dei numeri allora si può fare in modo estendendo classe astratta Numero .Anche dare un'occhiata a BigDecimals .I credo che questo è quello che stai cercando.

Si potrebbe scrivere il numero come numero di + e + esponente, ad es .: 1e2 invece di 100. Moltiplicazione e divisione dovrebbero lavorare per essa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top