格式化 BigDecimal 或不带小数点分隔符的数字

Format BigDecimal or Number without Decimal Separator

您好,我想打印一个带小数值但不使用小数点分隔符的数字。

例如:我有这个 275.1234 但我想要这个 027512(4 位 2 十进制,全部没有分隔符)

我尝试了两种方法:

    DecimalFormat format = new DecimalFormat("0000.00");  
    DecimalFormatSymbols custom=new DecimalFormatSymbols();
    custom.setDecimalSeparator('\u0000');
    format.setDecimalFormatSymbols(custom);
    System.out.println(format.format(new BigDecimal("275.1234")));

这打印我:0275 12(我知道我可以删除 space)

第二种方法:

    String[] value = new BigDecimal("275.1234").toString().split("\.");
    System.out.println(value[0] + value[1].substring(0,2));

This print me: 27512 (Bad I need That First 4 digits are filled with 0 if the question cannot have integer 4 digits)

Ex: 1,1234 ==> 000112
Ex: 10,5678 ==> 001056
Ex: 100,7877 ==> 010078

基本上我想要这个问题的更优雅的解决方案,有什么想法吗?

谢谢 伊格纳西奥

乘以 100 怎么样。

String text = String.format("%06.0f", Double.parseDouble("275.1234")*100);

String text = String.format("%06.0f", 275.1234 * 100);

String text = String.format("%06.0f", BigDecimal.valueOf(275.1234).doubleValue() * 100);

text设置为

027512

如果你想截断而不是舍入,你可以这样做

String text = String.format("%06d", (long) (1234.5678 * 100));

打印

123456

你也可以这样做

String value = "275.1234".replaceAll("\.", "").substring(0, 5) ;