[GWT] [Java] Научная запись автоматически округляется? - PullRequest
0 голосов
/ 04 февраля 2019

Мне нужно использовать научную нотацию для представления значения.Я использую этот код, но значение округляется, и я не хочу, чтобы ...

import com.google.gwt.i18n.client.NumberFormat;
...
Double value = Double.parseDouble("0.00000012");
String formatted = NumberFormat.getScientificFormat().format(value);
System.out.println(formatted);

Результат:

1E-7

, а не

1.2E-7

Не могли бы вы помочь мне?Спасибо:)

Ответы [ 3 ]

0 голосов
/ 04 февраля 2019

Тот же шаблон формата, который использовался в ответе funkyjelly, должен работать с GWT NumberFormat type:

import com.google.gwt.i18n.client.NumberFormat;
...
Double value = Double.parseDouble("0.00000012");
String formatted = NumberFormat.getFormat("0.#####E0").format(value);
System.out.println(formatted);
0 голосов
/ 04 февраля 2019

С вашим GWT NumberFormat, вы можете попробовать ниже и посмотреть, работает ли он?(например, используя BigDecimal вместо Double)

System.out.println(NumberFormat.getScientificFormat().format(new BigDecimal("0.00000012")));
0 голосов
/ 04 февраля 2019

Вы можете достичь того, что вы хотите, с помощью стандарта java.text.DecimalFormat

import java.text.DecimalFormat;
...

Double value = Double.parseDouble("0.00000012");
DecimalFormat formatter = new DecimalFormat("0.#####E0");
String formatted = formatter.format(value);
System.out.println(formatted);

Это распечатывает: 1.2E-7

...