繁体   English   中英

如何在Java中将格式化的double值打印为字符串?

[英]How to print formatted double value to string in java?

我想从带有10个字符的双精度值创建字符串,例如

Double d = 150.23;

像这样的输出字符串0000015023+

我已经使用了此代码,但无法正常工作:

String imponibile = String.format("%10d%n", myDoubleValue);

您想要不带句点打印150.23 格式化不应该实现这一目标。 你必须:

  1. double int数转换为具有所需舍入的int数,并打印int

     int i = (int) Math.round(100.0 * d); String.format("%010d", i) 

    "010"表示至少打印10位数字,如果少则填充零。 填充字符位于数字位数之前。

  2. 打印double精度字符,然后从字符串中删除句点:

     String.format("%011.2f", d).replace(".", "") 

    请注意,现在您必须如何指定11包括句点)。 并且您必须指定句点后的位数

我不认为有一种方法可以在String.format之后的数字后打印符号。 您可以轻松地要求在开始时打印它,这是打印数字的正常方法:

String s = String.format("%+010d", i);

如果必须,可以使用substring和串联将其放在末尾:

String imponibile = s.substring(1) + s.charAt(0);

尝试用f代替d

String imponibile = String.format("%010.0f", myDoubleValue*100);

浮点数-可以应用于Java浮点类型:float,Float,double,Double和BigDecimal 类格式化程序

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM