java - BigDecimal() 省略前导零

标签 java bigdecimal

如何存储与输入相同的 BigDecimal()?

我需要使用 BigDecimal() 存储实数,其中可能包含以下内容:

02.34
0.12
.12
0
000.000

我使用了以下方法:

Scanner sc= new Scanner(System.in);
int n=sc.nextInt();
BigDecimal[] amount = new BigDecimal[n];

for(int i=0;i<n;i++) {
    amount[i]=sc.nextBigDecimal();
}

但是在打印时,它会打印格式化。像这样:

2.34
0.12
0.12
0.000
0

我希望它应该和输入的一样。因此,请告诉我如何才能完整地存储输入。

最佳答案

下面的代码应该可以解决你的问题,保持你的字符串不变,只有当你比较的时候才把它转换成BigDecimal

 Arrays.sort(s, Collections.reverseOrder(new Comparator<String>() {
        @Override
        public int compare(String a1, String a2) { 
           BigDecimal a = new BigDecimal(a1);
            BigDecimal b = new BigDecimal(a2);
            return a.compareTo(b);

        }
    }));

关于java - BigDecimal() 省略前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33195821/

相关文章:

java - 白标错误页面 - 应用程序没有明确的映射/错误

java - 为什么你可以抛出一个未发生的异常但不捕获它

Java DecimalFormat HALF_UP 舍入错误

java - DecimalFormat(),俄罗斯计算机的问题

java - 假装: Retry depending on response status

java - Mockito 的 eq 调用不应该等于吗?

java - DependONGroups 注释 testng

hibernate - Postgres - 如何将 sum(bigint) 类型转换为 bigint?

java - Java 中 BigDecimal 的 BigInteger 幂

java - Mockito 和 Assertions - 两个相同的 BigDecimals...不相等