0

例如:

双a = 2000;System.out.println(a);

打印出 2000.0,而我想打印 2E3。对于 2 的双倍,我希望 2E0 等。

我知道当您达到 20000000 (2E7) 并希望为任何 Double 值进行打印时,它会开始打印。是否有一些自由/功能可以做到这一点?我花了几个小时浏览谷歌结果无济于事。我的印象是,通过大量操作 .toHexCode() 输出,这可能是可能的,但我无法理解其输出的文档。我该怎么做呢?

4

3 回答 3

3

查看DecimalFormat的文档,这应该可以满足您的需要。

编辑:这是一个例子(没有检查过):

double myDouble = 2000;
NumberFormat formatter = new DecimalFormat("0E0");
System.out.println(formatter.format(myDouble)); // Should print "2E3"
于 2011-02-20T19:53:20.593 回答
3

这将打印 2E3。更多关于 DecimalFormat 类的信息

double a = 2000; 
DecimalFormat formatter = new DecimalFormat("###E0");       
System.out.println(formatter.format(a));
于 2011-02-20T19:55:42.567 回答
2

这听起来像是 java.util.Formatter 的工作。我自己没有用过,但它似乎可以进行科学计数。API条目在这里:http: //download.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html

于 2011-02-20T19:53:04.893 回答