gpt4 book ai didi

java - 你如何从 BigDecimal 中截断多余的小数

转载 作者:行者123 更新时间:2023-12-04 15:52:54 24 4
gpt4 key购买 nike

我正在构建一个使用货币转换器并将 BigDecimal 金额转发到另一个服务的服务。有时,转换率使转换后的金额接近小数点后 34 位,这是下游服务不接受的。

有没有办法简单地截断(而不是舍入)BigDecimal。因此,例如,如果转换后的金额是 1.23456789,我既不想要 1.24,也不想要 1.3,也不想要 1.20,或者任何类似的东西。我只是想去掉 4 之后出现的小数。所以我想要的是 1.23。

我在SO上看到很多与此相关的问题,但它们都以某种方式舍入了BigDecimal。

谢谢!

最佳答案

RoundingMode.DOWN 有效截断您的十进制值:

Javadoc 说:

Rounding mode to round towards zero. Never increments the digit prior to a discarded fraction (i.e., truncates). Note that this rounding mode never increases the magnitude of the calculated value.

BigDecimal dec = new BigDecimal(10.2384235254634623524);
System.out.println(dec.setScale(2, RoundingMode.DOWN));

将给予:

10.23

关于java - 你如何从 BigDecimal 中截断多余的小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21360286/

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