abstraction de la notation scientifique en Java
-
10-10-2019 - |
Question
Y at-il une abstraction classe java pour désigner les numéros scientifiques (e.g. the number, 10 power modulus)
, afin que je puisse faire des opérations simples comme la multiplication ou division sur eux.
Note: Vous cherchez quelque chose de similaire à la Fraction ici.
La solution
Comme dit Emil, BigDecimal vous aide. Il ne dispose pas d'un constructeur qui vous permet d'entrer un double mantisse et un exposant int. Vous pouvez étendre la classe pour faire un nouveau constructeur, ou vous pouvez définir un DecimalFormat. Je pense que la DecimalFormat classe fera partie de ce que vous voulez. Il vous permet de définir la façon de la façon dont un certain nombre « regards ». Vous devez définir le format à l'aide d'une chaîne, le tutoriel est http://download.oracle.com/javase/tutorial/i18n/format /decimalFormat.html
Vous devrait définir le format des numéros scientifiques, appel yourDecimalFormat.parse(yourStringtoBecomeScientificNumber)
qui vous donnera un numéro, puis jeté comme un BigDecimal à faire des calculs sur elle.
Notez également que cela devrait vous permettre de forcer un certain nombre de chiffres significatifs ou chiffres à gauche du point décimal.
Autres conseils
Je n'ai pas votre example.If vous avez besoin d'un autre type de représentation numérique, alors vous pouvez le faire par l'extension de classe abstraite Nombre de .Aussi ont un regard sur BigDecimals de .Je pense que c'est ce que vous recherchez.
Vous pourriez écrire le numéro comme numéro + e + exposant, .: par exemple 1e2 au lieu de 100. Multiplications et des divisions devraient travailler pour elle.