我想从具有 10 个字符的 double 值创建一个字符串
Double d = 150.23;
输出字符串是这样的 0000015023+
我已经使用了这段代码,但它不起作用:
String imponibile = String.format("%10d%n", myDoubleValue);
最佳答案
您想要打印不带句点的150.23
。格式化不应该达到这个目的。你必须:
将
double
数字转换为具有所需舍入的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);
如果需要,您可以使用子字符串
和连接将其放在末尾:
String imponibile = s.substring(1) + s.charAt(0);
关于java - 如何在java中将格式化的 double 值打印为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43914170/