我分为 124/13。但应用程序强制关闭。 这是我的代码:
Float x =Float.valueOf(a.getText().toString());
Float y =Float.valueOf(b.getText().toString());
BigDecimal xx= new BigDecimal (x);
BigDecimal yy= new BigDecimal (y);
BigDecimal rx= xx.divide(yy);
res.setText("=" + rx);
最佳答案
应用程序可能会崩溃,因为 BigDecimal.toString()
做了一些意外的事情。此外,a
、b
或 rx
可能为 null
。
无论如何,我会考虑将 BigDecimal
与 String
构造函数一起使用,这样就不会出现舍入错误:
String x = a.getText().toString();
String y = b.getText().toString();
BigDecimal xx = new BigDecimal(x);
BigDecimal yy = new BigDecimal(y);
BigDecimal rx = xx.divide(yy);
res.setText("=" + rx.toPlainString());
同时编写 new BigDecimal(x)
而不是 new BigDecimal (x)
。请注意省略的空格,这可能是您的应用程序崩溃的真正原因,Java 中不允许这样做。
关于java - BigDecimal 不计算除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20444568/