簡體   English   中英

如何將 18 位數字格式化為 10 個字符串字符

[英]How to format 18 digit double to become 10 string character

double pdouble= 3.3603335204002837E12;

String pstart= Double.toString(pdouble).replace(".", "") .trim()

String.format("%10d", pstart);

System.out.println("pstart"+pstart);

我能知道為什么它不起作用嗎...
它顯示:

線程“main”中的異常
java.util.IllegalFormatConversionException: d != java.lang.String at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4302) .I

希望任何人都可以提供幫助

%d用於int 由於pstart是字符串,請使用bs

String.format("%10s", pstart);

輸出

33603335204002837E12

讀取Java 字符串格式()


但是,如果您只需要號碼的前 10 位數字,請嘗試使用DecimalFormat

DecimalFormat d = new DecimalFormat("0000000000");
String number = d.format(pdouble);

輸出

3360333520400

如果數字小於 10 位,這也會添加前導0

對於十進制數,需要使用“f”標志。

double pdouble= 3.3603335204002837E12;

System.out.println(String.format("%10f", pdouble));

這將打印一個最小長度為 10 個字符的字符串。

在此模式“%10f”中,寬度標志(例如 10)是最小字符數

寬度是要寫入輸出的最小字符數。 對於行分隔符轉換,寬度不適用; 如果提供,將拋出異常。

來自格式化程序java doc

暫無
暫無

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

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