Как я могу представить меньшие переменные типа Double с показателями в Java - PullRequest
0 голосов
/ 20 февраля 2011

Например:

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

Распечатывает 2000.0, тогда как я хотел бы напечатать 2E3.С двойным числом 2 я желаю 2E0 и т. Д.

Я знаю, что он начинает печататься так, когда вы достигаете 20000000 (2E7), и хотел бы сделать это для любого значения Double.Есть ли какая-нибудь библиотека / функция для этого?Я провел несколько часов, просматривая результаты Google, но безрезультатно.У меня сложилось впечатление, что это может быть возможно, если сильно манипулировать выводом .toHexCode (), но я не могу разобраться с документацией его вывода.Как бы я поступил так?

Ответы [ 3 ]

3 голосов
/ 20 февраля 2011

Посмотрите документы для DecimalFormat , которые должны делать то, что вам нужно.

РЕДАКТИРОВАТЬ: вот пример (не проверял это):

double myDouble = 2000;
NumberFormat formatter = new DecimalFormat("0E0");
System.out.println(formatter.format(myDouble)); // Should print "2E3"
3 голосов
/ 20 февраля 2011

Это печатает 2E3. Подробнее о классе DecimalFormat здесь .

double a = 2000; 
DecimalFormat formatter = new DecimalFormat("###E0");       
System.out.println(formatter.format(a));
2 голосов
/ 20 февраля 2011

Звучит как работа для java.util.Formatter.Я не использовал это сам, но это кажется способным к научному примечанию.Запись API здесь: http://download.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html

...