[gwt][java]科学符号自动舍入?

lyfkaqu1  于 2021-07-12  发布在  Java
关注(0)|答案(3)|浏览(421)

我需要用科学符号来表示一个值。我用这个代码,但值是四舍五入的,我不希望。。。

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

你能帮我吗?谢谢:)

rkue9o1l

rkue9o1l1#

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);
zpjtge22

zpjtge222#

用你的gwtnumberformat,你能试试下面的,看看它是否有效吗(例如使用bigdecimal代替double)

System.out.println(NumberFormat.getScientificFormat().format(new BigDecimal("0.00000012")));
fdx2calv

fdx2calv3#

你可以达到你想要的标准 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

相关问题