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

标签 java

我想从具有 10 个字符的 double 值创建一个字符串

Double d = 150.23;

输出字符串是这样的 0000015023+

我已经使用了这段代码,但它不起作用:

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

最佳答案

您想要打印不带句点的150.23。格式化不应该达到这个目的。你必须:

  1. double 数字转换为具有所需舍入的 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);

如果需要,您可以使用子字符串和连接将其放在末尾:

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

关于java - 如何在java中将格式化的 double 值打印为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43914170/

相关文章:

java - 从java中的数组中删除特定索引

java - 为什么从主方法调用方法和变量时被迫将它们更改为静态?

java - Sprite 动画计时java swing

java - 为 CloudFormation 分配凭证(无需构造函数)

Java 泛型 : bound class extend class OR 2 interfaces

java - 如何使用java将ucs2编码文件转换为UTF-8或UTF-16或ANSI编码格式

Java读取.csv文件并获取java.lang.ArrayIndexOutOfBoundsException : 3 and don't know why

java - 定位多种设备尺寸的最佳方法是什么?

java - 在Java中,如何创建一个像KeyListener这样的类,如果你扩展它,它会自动调用方法?

java - Spring 批处理。使用 rollbackFor 调用方法