簡體   English   中英

java如何將double直接轉換為字符串?

[英]java How do I convert double to string directly?

我想將雙精度轉換為字符串。 如果我使用Double.toString或String.valueOf,它會給人一些可怕的感覺,如5e-10或類似的東西。

如果我有x = 0.00000032,我想簡單地擁有字符串“ 0.00000032”。

我做了很長一段路,我想知道是否有更好(更短)的方法。

            szText += String.format("%.20f", dOutput);

            iZeros = 0;
            for(int i=szText.length() - 1; i>=0; i--)
            {
                if(szText.charAt(i) == '0')
                    ++iZeros;
                else break;
            }

            szText = szText.substring(0, szText.length() - iZeros);

也許有更好的選擇,但是您可以使用類似...

NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(100);

double x = 0.00000032d;
System.out.println(x);
System.out.println(nf.format(x));

哪個輸出

3.2E-7
0.00000032

您可能想根據您的特定需求使用maximumFractionDigits屬性...

這是DecimalFormat類的主要用例。

您會想要一些類似的東西

DecimalFormat formatter = new DecimalFormat("#.#");
String output = formatter.format(input);

DecimalFormat的默認行為是將小數部分四舍五入到小數點后一位。 要更改此設置,請使用MadProgrammer的設置formatter.setMaximumFractionDigits(100)的解決方案。

BigDecimal.valueOf(value).setScale(decimalLimit, RoundingMode.HALF_UP).toPlainString()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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