您好我想打印一个带小数值的数字,但不使用小数点分隔符。
Ex:我有这个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(我知道我可以移除空间)
第二种方法:
String[] value = new BigDecimal("275.1234").toString().split("\\.");
System.out.println(value[0] + value[1].substring(0,2));
打印我:27512(不好我需要,如果有问题的数字没有整数4位,前4位数字填充0)
Ex: 1,1234 ==> 000112
Ex: 10,5678 ==> 001056
Ex: 100,7877 ==> 010078
基本上我想要更优雅的解决这个问题,任何想法?
由于 伊格纳西奥
答案 0 :(得分:9)
如何乘以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
答案 1 :(得分:0)
你也可以这样做
String value = "275.1234".replaceAll("\\.", "").substring(0, 5) ;