Как напечатать большое число с экспоненциальной нотацией? - PullRequest
0 голосов
/ 26 октября 2011

Если у меня есть номер 52000000000, и я хочу распечатать его как 5.2E + 9, как мне это сделать с помощью printf?

Ответы [ 3 ]

3 голосов
/ 26 октября 2011

Поскольку это простой метод, я проведу вас через него.

Вам понадобятся два счетчика: один для самого числа (тип double, назовем его 'num') и один для показателя степени (целое число, назовем его exp). Вам понадобится цикл while, такой, что хотя num больше 10, разделите num на 10 и увеличьте exp на 1. Итак, что-то вроде 7600 должно иметь num = 7.6, exp = 3.

В зависимости от типа возвращаемого значения вы можете возвращать эти значения различными способами. Простым способом было бы получить строку возвращаемого типа и вернуть num + "E" + exp.

1 голос
/ 10 февраля 2014

Это можно сделать с помощью printf ("%. 2g", 52000000000); «g» - символ преобразования для научной нотации для форматирования, а «.2» указывает точность.

0 голосов
/ 26 октября 2011

Вам нужно взглянуть на это: DecimalFormat

formatter = new DecimalFormat("0.#E0");
System.out.println(formatter.format(value));//value is where you store the number to be formatted
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...