簡體   English   中英

具有bigDecimals和decimalFormat的科學計數法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM