[GWT][Java] 科学计数法自动四舍五入?
[GWT][Java] Scientific notation auto rounded?
我需要使用科学记数法来表示一个值。
我使用此代码,但值是四舍五入的,我不希望这样...
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
你能帮帮我吗?
谢谢:)
你可以用标准实现你想要的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
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);
使用你的 GWT NumberFormat,你可以试试下面的方法看看它是否有效? (例如使用 BigDecimal 而不是 Double)
System.out.println(NumberFormat.getScientificFormat().format(new BigDecimal("0.00000012")));
我需要使用科学记数法来表示一个值。 我使用此代码,但值是四舍五入的,我不希望这样...
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
你能帮帮我吗? 谢谢:)
你可以用标准实现你想要的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
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);
使用你的 GWT NumberFormat,你可以试试下面的方法看看它是否有效? (例如使用 BigDecimal 而不是 Double)
System.out.println(NumberFormat.getScientificFormat().format(new BigDecimal("0.00000012")));