2010-12-09 108 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。我想这就是你要找的。