java - BigDecimal 不计算除法

标签 java

我分为 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() 做了一些意外的事情。此外,abrx 可能为 null

无论如何,我会考虑将 BigDecimalString 构造函数一起使用,这样就不会出现舍入错误:

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/

相关文章:

java - SolrQuery 的 SetQuery 函数中 String 参数的正确用例?

java - 共享串口(Modem协议(protocol)+拨号器)

java - Java桌面程序运行不稳定

javascript - 使用 iText 打印条码问题

java - 创建矩阵 Java

java - 这个方法有什么作用?

java - Spring boot AOP Aspect 未被调用

java - 尽管在 java 中调整了窗体的大小,如何使 jLabels 保持附着在窗口窗体的角上?

java - 在阵列上移动玩家

java - Alloy API 导致 java.lang.UnsatisfiedLinkError