[英]Scientific notation with bigDecimals and decimalFormat
我正在嘗試使用bigdecimals和decimalFormat以科學計數法格式顯示小數,這是到目前為止我想到的:
BigDecimal a = new BigDecimal("0.000001");
DecimalFormat df = new DecimalFormat("0.0###E0");
System.out.println(df.format(a));
該程序輸出“ 1.0E-4”,這正是我想要的。 現在,例如,如果我將bigDecimal設置為“ 0.2222”,則輸出為2.222E-1。
我的問題是:在這種情況下,有什么方法可以防止科學計數法,因此輸出應為0.2222,而不是2.222E-1?
嘗試使用帶有g
格式說明符的String.format
。 文檔在這里 。
這是一些示例代碼:
import java.math.BigDecimal;
public class BigDecTest {
public static final void main(String[] args) {
BigDecimal a = new BigDecimal("0.000001");
System.out.println(String.format("%6.4G",a));
BigDecimal b = new BigDecimal("0.2222" );
System.out.println(String.format("%6.4G", b));
}
}
它產生:
1.000E-06
0.2222
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.