[英]How do I convert a String to Double in Java using a specific locale?
[英]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.