[英]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
。 格式化不应该实现这一目标。 你必须:
将double
int
数转换为具有所需舍入的int
数,并打印int
:
int i = (int) Math.round(100.0 * d); String.format("%010d", i)
"010"
表示至少打印10位数字,如果少则填充零。 填充字符位于数字位数之前。
打印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.