2010-12-09 19 views
2

Gibt es eine Java-Klasse Abstraktion wissenschaftliche Zahlen (e.g. the number, 10 power modulus) bezeichnen, so dass ich einfache Operationen wie Multiplikation oder Division auf ihnen tun kann.wissenschaftliche Notation Abstraktion in Java

Hinweis: Suchen Sie nach etwas ähnlich wie Fraction hier.

+1

Ich dachte, dass diese "doppelt" genannt wurden. Welche zusätzliche Abstraktion benötigen Sie? Ich kann das sicher schreiben: Doppelmodul = 3,0e7; Was hast du sonst noch gedacht? – duffymo

Antwort

3

Wie Emil sagte, BigDecimal hilft Ihnen. Es hat keinen Konstruktor, mit dem Sie eine doppelte Mantisse und einen int-Exponenten eingeben können. Sie könnten die Klasse erweitern, um einen neuen Konstruktor zu erstellen, oder Sie könnten ein DecimalFormat definieren. Ich denke, dass die Klasse DecimalFormat einiges von dem tun wird, was Sie wollen. Sie können festlegen, wie eine Nummer aussieht. Sie müssen das Format mit einem String definieren, das Tutorial ist http://download.oracle.com/javase/tutorial/i18n/format/decimalFormat.html

Sie würden das Format der wissenschaftlichen Zahlen definieren, yourDecimalFormat.parse(yourStringtoBecomeScientificNumber) nennen, die Sie eine Zahl, wirft sie dann als BigDecimal Arithmetik auf, es zu tun .

Beachten Sie auch, dass Sie damit eine bestimmte Anzahl von signifikanten Zahlen oder Ziffern links vom Dezimalpunkt erzwingen können.

0

Sie könnten die Zahl als Zahl + e + Exponent schreiben, z. B .: 1e2 statt 100. Multiplikation und Division sollte dafür arbeiten.

+0

Beachten Sie, dass Sie auf den Bereich "1e-308" bis "1e308" beschränkt sind. –

+0

Habe nicht bekommen was der Typ wäre, wenn ich das als 1e2 darstellen müsste. – user339108

1

Ich habe nicht bekommen example.If benötigen Sie eine andere Art der Zahlendarstellung, dann können Sie dies tun, indem abstrakte Klasse erweitern Number .Auch haben einen Blick auf BigDecimals .Ich denke, das ist, was Sie suchen.

Verwandte Themen