数不清30亿以上的数字



我在这里遇到了一个问题,当我计算一个超过20亿和30亿的数字时,总是有错误,并显示力接近。所以我需要修复它

long  initial_investment, total_investment;
 DecimalFormat df = new DecimalFormat ("###,###,###,###");
initial_investment = Integer.parseInt( Text1.getText().toString());

if (initial_investment <= 1000000000)
                 {
                     total_investment = ((initial_investment * 3) /100)+ total_investment;
                     Text5.setText(df.format(total_investment));
                 }
                 else if (initial_investment > 1000000000 && initial_investment <= 3000000000L )
                 {
                     total_investment = (long) (((initial_investment* 2.5) /100)+ total_investment);
                     Text5.setText(df.format(total_investment));
                 }
                 else if (initial_investment > 3000000000L )
                        {
                        total_investment = ((initial_investment * 2) /100)+ total_investment;
                        Text5.setText(df.format(total_investment));
                        }
            }

如果您正在处理一些非常大的值,我建议您使用BigInteger。您可以使用它,如下所示

BigInteger bi1, bi2, bi3;  
// assign values to bi1, bi2
bi1 = new BigInteger("123");
bi2 = new BigInteger("50");
// perform add operation on bi1 using bi2
bi3 = bi1.add(bi2);
String str = "Result of addition is " +bi3;

你可以做一些类似的事情

initial_investment= Long.parseLong( Text1.getText().toString());

而不是

initial_investment = Integer.parseInt( Text1.getText().toString());

很抱歉这是我的错,但现在我不得不修复它,我只需要将initial_investment从int更改为长

initial_investment = Long.parseLong( Text1.getText().toString());

最新更新