Ign*_*ste 2 java format bigdecimal
嗨,我想打印一个带小数值但不使用小数分隔符的数字.
例如:我有这个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")));
Run Code Online (Sandbox Code Playgroud)
这打印我:0275 12(我知道我可以删除空间)
第二种方法:
String[] value = new BigDecimal("275.1234").toString().split("\\.");
System.out.println(value[0] + value[1].substring(0,2));
Run Code Online (Sandbox Code Playgroud)
打印我:27512(不好我需要如果有问题的数字没有整数4位,前4位数字填充0)
Ex: 1,1234 ==> 000112
Ex: 10,5678 ==> 001056
Ex: 100,7877 ==> 010078
Run Code Online (Sandbox Code Playgroud)
基本上我想要更优雅的解决这个问题,任何想法?
谢谢伊格纳西奥
如何乘以100.
String text = String.format("%06.0f", Double.parseDouble("275.1234")*100);
Run Code Online (Sandbox Code Playgroud)
要么
String text = String.format("%06.0f", 275.1234 * 100);
Run Code Online (Sandbox Code Playgroud)
要么
String text = String.format("%06.0f", BigDecimal.valueOf(275.1234).doubleValue() * 100);
Run Code Online (Sandbox Code Playgroud)
设置text为
027512
Run Code Online (Sandbox Code Playgroud)
如果你想截断而不是圆形,你可以做到
String text = String.format("%06d", (long) (1234.5678 * 100));
Run Code Online (Sandbox Code Playgroud)
版画
123456
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4669 次 |
| 最近记录: |