【发布时间】:2013-08-02 22:30:00
【问题描述】:
我有这个方法:
public void Example(BigDecimal value, int scale){
BigDecimal x = new BigDecimal("0.00001");
System.out.println("result: " + (value.multiply(x)).setScale(scale, RoudingMode.HALF_UP).toString());
例如,如果 value = 1 且 scale = 2,则输出为“result: 0.00”。我以为会是 1.00E-5。所以,我的疑问是:如果 BigDecimal 的比例大于某个值(在我的示例中为 2),我如何强制它以科学记数法格式化?
【问题讨论】:
-
为什么不使用自己的
toString或toEngineeringStringmethods? -
@PM77-1:两者都总是使用科学记数法。而工程符号并不总是科学符号。
-
@PM 因为,对于我正在做的事情,我需要它是科学符号,而不是工程...
-
这可能不是很有帮助,但这里有一种打印方式
1.0E-5:x.doubleValue() -
您可以使用基本数学来计算。
(num / pow(10, floor(log(num))) + "E" + floor(log(num)).
标签: java bigdecimal