gpt4 book ai didi

Java 使用 BigDecimal 除法

转载 作者:行者123 更新时间:2023-12-01 08:45:31 28 4
gpt4 key购买 nike

我是 java 新手,所以我需要你对我正在进行的项目的帮助!我定义了一些计数器,这些是我将使用的:

int[] acceptCounters = {};
int[] acceptFailCounters = {};

然后我这样写它们来连接数据库,并查看结果:

acceptCounters = guiops.getOfferStatitics(conn, "WS_GET_OFFER_ACCEPT");
acceptFailCounters = guiops.getOfferStatitics(conn, "WS_GET_OFFER_ACCEPT_PURCHASE_FAILED");*

我得到这样的结果(我删除了 HTML 部分):

        *__html parts__*

<%
for (int i = 0; i < acceptCounters.length; i++) {
%>

html 部分

        <%=formatter.format((new BigDecimal(acceptCounters[i] + acceptFailCounters[i])).longValue())%>

<%
}
%>

这些都可以。我想要找到的是成功率,即 acceptCounters/(acceptCounters + AcceptFailCounters) 并查看 2 位小数。为了使它们保持相同的格式,我编写了如下 Java 代码:

html 部分

        <%
for (int i = 0; i < acceptCounters.length; i++) {
%>

html 部分

        <%=formatter.format((new BigDecimal(acceptCounters[i] /(acceptCounters[i] + acceptFailCounters[i]))).longValue())%>

<%
}
%>

但我看到的结果是 0。它应该接近 0.75 或其他什么。你能帮我看看成功率吗?我希望它足够清楚。

最佳答案

BigDecimal 有自己的除法。你可以这样使用:

formatter.format((new BigDecimal(acceptCounters[i]).divide(new BigDecimal(acceptCounters[i]),3)).add(new BigDecimal(acceptFailCounters[i]));

BigDecimal java.math.BigDecimal.divide(BigDecimal divisor, int roundingMode)

Returns a BigDecimal whose value is (this / divisor), and whose scale is this.scale(). If rounding must be performed to generate a result with the given scale, the specified rounding mode is applied.

关于Java 使用 BigDecimal 除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45499055/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com