java - 如何在 Java 中用下划线填充数字?

标签 java number-formatting

如何在 Java 中用下划线代替通常的零来填充数字?

比如我要

  • 123.45 被格式化为 ___123.45 和
  • 12345.67 被格式化为 _12345.67
  • 0.12 被格式化为 ______.12

我尝试了很多东西,最接近的是这个(通过使用 SYMBOLS.setZeroDigit('_');):

import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;

public class Example {

    public static void main(String[] args) {
        DecimalFormatSymbols SYMBOLS = new DecimalFormatSymbols();
        SYMBOLS.setDecimalSeparator('.');
        SYMBOLS.setGroupingSeparator(',');
        DecimalFormat OUTPUT_FORMAT = new DecimalFormat("000,000.00", SYMBOLS);

        System.out.println(OUTPUT_FORMAT.format(0.01));
        // got 000,000.01
        System.out.println(OUTPUT_FORMAT.format(0.12));
        // got 000,000.12
        System.out.println(OUTPUT_FORMAT.format(123456));
        // got 123,456.00
        System.out.println(OUTPUT_FORMAT.format(123456.78));
        // got 123,456.78
        System.out.println(OUTPUT_FORMAT.format(1234));
        // got 001,234.00
        System.out.println(OUTPUT_FORMAT.format(1234.56));
        // got 001,234.56

        SYMBOLS.setZeroDigit('_');
        OUTPUT_FORMAT = new DecimalFormat("000,000.00", SYMBOLS);
        System.out.println(OUTPUT_FORMAT.format(0.01));
        // expected ______._1 but got ___,___._`
        System.out.println(OUTPUT_FORMAT.format(0.12));
        // expected ______.12 but got ___,___.`a
        System.out.println(OUTPUT_FORMAT.format(123456));
        // expected 123,456.__ but got `ab,cde.__
        System.out.println(OUTPUT_FORMAT.format(123456.78));
        // expected 123,456.78 but got `ab,cde.fg
        System.out.println(OUTPUT_FORMAT.format(1234));
        // expected __1,234.00 or at least __1,234.__ but got __`,abc.__
        System.out.println(OUTPUT_FORMAT.format(1234.56));
        // expected __1,234.56 but got __`,abc.de
    }

}

嗯,不是很接近,但如果格式正确(带有尾随下划线),则为空数字: ________

无论如何,关于如何获得预期行为的建议?

最佳答案

"_________".substring( num.length() )+num;

其中 num 是一个包含您的号码的 String。要将 double 转换为 String,您可以使用 Double.toString(myDouble)

关于java - 如何在 Java 中用下划线填充数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6945531/

相关文章:

java - 异常后继续交易 - JPA

java - 在 Java 中处理异常或抛出异常

java - 如何从包含数组列表的函数中提取多个字符串值

java - 没有最大小数位数的 NumberFormat

java - 解析双数和百万

java - 如何使用 Java 中的 iText 5 创建多个单元格并将每个字符设置到每个单元格中

java - Keycloak terms.ftl 文件 Url

c - printf 不打印正确的浮点值

java - NumberFormat.parse 返回意外结果

javascript - 计算幂和的问题