[GWT][Java] 科学记数法自动舍入?

我需要使用科学记数法来表示一个值。我使用此代码,但值是四舍五入的,我不希望这样......


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

你可以帮帮我吗?谢谢 :)


慕妹3146593
浏览 125回答 3
3回答

慕侠2389804

您可以通过标准实现您想要的java.text.DecimalFormatimport 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

慕尼黑8549860

使用您的 GWT NumberFormat,您可以尝试以下方法,看看它是否有效?(例如使用 BigDecimal 而不是 Double)System.out.println(NumberFormat.getScientificFormat().format(new BigDecimal("0.00000012")));

RISEBY

funkyjelly 的答案中使用的相同格式模式应该适用于 GWT 的NumberFormat类型: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);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java