如何将18位数的双精度格式转换为10字符串字符

ranjithh:
double pdouble= 3.3603335204002837E12;

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

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

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

我能知道为什么它不起作用吗?
它显示如下:

线程“主”
中的异常java.util.IllegalFormatConversionException:d!= java.lang.String,位于java.util.Formatter $ FormatSpecifier.failConversion(Formatter.java:4302).I

希望任何人都能帮助

Roshana Pitigala:

%d是为int作为pstart字符串,请使用bs

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

输出量

33603335204002837E12

读取Java字符串format()


但是,如果您只需要数字的前10位数字,请尝试使用 DecimalFormat

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

输出量

3360333520400

0如果数字少于10位,这也会添加前导s。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章