2010-12-09 104 views
2

是否有java類抽象來表示科學數字(e.g. the number, 10 power modulus),以便我可以在它們之上進行簡單的運算,如乘法或除法。java中的科學記數法抽象

注意:在這裏尋找類似於Fraction的東西。

+1

我以爲那些被稱爲「雙」。你認爲你需要什麼額外的抽象?我當然可以寫這個:double modulus = 3.0e7;你還記得什麼? – duffymo 2010-12-09 11:28:44

回答

3

正如Emil所說,BigDecimal可以幫助您。它沒有可以讓你輸入一個雙尾數和一個int指數的構造函數。你可以擴展這個類來創建一個新的構造函數,或者,你可以定義一個DecimalFormat。我認爲DecimalFormat類會做一些你想要的。它允許你如何定義一個數字的外觀。你需要使用一個字符串來定義格式,該教程是 http://download.oracle.com/javase/tutorial/i18n/format/decimalFormat.html

你必須定義科學數字格式,呼籲yourDecimalFormat.parse(yourStringtoBecomeScientificNumber)它會給你一個號碼,然後將它轉換爲一個BigDecimal做就可以了算術。

另請注意,這應該允許您強制一定數量的有效數字或數字在小數點左側。

0

您可以將數字寫成數字+ e +指數,例如: 1e2而不是100。 乘法和除法應該適用。

+0

請注意,您僅限於`1e-308`到`1e308`的範圍。 – 2010-12-09 06:12:45

1

我沒有得到你的例子。如果你需要一個不同類型的數字表示,那麼你可以通過擴展抽象類Number來做到這一點。也可以看看BigDecimals。我想這就是你要找的。